Home >Web Front-end >HTML Tutorial >Codeforces Round #281 (Div. 2) (A、B、C、D题)_html/css_WEB-ITnose

Codeforces Round #281 (Div. 2) (A、B、C、D题)_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 11:52:511003browse

Yesterday’s CF match was quite enjoyable, but the rating just didn’t increase and I didn’t seize the opportunity to increase the rating. .

I could have passed four questions, but failed. After re-evaluation, I knelt down on two questions. . Alas:-(



A. Vasya and Football

Idea: count 1 for yellow cards and 2 for red cards.

Output when the number exceeds 2 for the first time. >


Question link: A. Vasya and Football


AC code:

#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <string>#include <cmath>using namespace std;struct node {	char name[25];	int a[105];}home, away;int main(){	for(int i=0; i<105; i++)	{		home.a[i] = 0;		away.a[i] = 0;	}	scanf("%s %s", home.name, away.name);	int n;	scanf("%d", &n);	while(n--)	{		int t, e;		char ch1[3], ch2[3];		scanf("%d %s %d %s", &t, ch1, &e, ch2);		if(ch1[0]=='h')		{			if(ch2[0]=='y')			{				home.a[e]++;				if(home.a[e]==2)printf("%s %d %d\n", home.name, e, t);			}			else if(ch2[0]=='r')			{				home.a[e]+=2;				if(home.a[e]==2||home.a[e]==3)printf("%s %d %d\n", home.name, e, t);			}		}		else 		{			if(ch2[0]=='y')			{				away.a[e]++;				if(away.a[e]==2)printf("%s %d %d\n", away.name, e, t);			}			else if(ch2[0]=='r')			{				away.a[e]+=2;				if(away.a[e]==2||away.a[e]==3 ) printf("%s %d %d\n", away.name, e, t);			}		}	}	return 0;}



B. Vasya and Wrestling

Idea: First use sum to determine whether the score is 0, sum>0 => first, sum< ;0 => second,

sum=0, then determine the dictionary order, if it is the same again, determine the last action. >Note that sum needs to be long. >

AC code:



C. Vasya and Basketball


Idea: Sort all the balls, first assign them all as 3, and then reduce it to 2, and then judge the MAX of the intermediate process

#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <string>#include <cmath>using namespace std;int judge(int a[], int b[], int na, int nb){	int i, j;	for(i=0, j=0; i<na, j<nb; i++, j++)	{		if(a[i]>b[i])return 1;		else if(a[i]<b[i])return 0;	}	if(i==na&&j!=nb)return 0;	else if(j==nb&&i!=na)return 1;	else if(i==na&&j==nb)return 2;}int main(){	long long sum=0;	int n, a[200005], b[200005], na=0, nb=0;	scanf("%d", &n);	int t;	for(int i=0; i<n; i++)	{		scanf("%d", &t);		if(t>0)a[na++] = t;		else if(t<0)b[nb++] = -t;		sum+=t;	}	if(sum>0)printf("first\n");	else if(sum<0)printf("second\n");	else if(judge(a,b,na,nb)==1)printf("first\n");	else if(judge(a,b,na,nb)==0)printf("second\n");	else if(judge(a,b,na,nb)==2&&t>0)printf("first\n");	else if(judge(a,b,na,nb)==2&&t<0)printf("second\n");	return 0;}

There was a little confusion when doing the questions yesterday. 🎜>

Question link: C. Vasya and Basketball


AC Code:


D. Vasya and Chess


Thinking: It seems like this question is a bit confusing. Question link: D. Vasya and Chess


AC code:

#include <cstdio>#include <cstring>#include <iostream>  #include <queue>  #include <map>  #include <set>  #include <vector>  #include <algorithm>   using namespace std;    #define LL long long  #define INF 0xfffffffpair<int,bool> p[400010];int main(){    int n, m;    scanf("%d", &n);    for(int i=0; i<n; i++)	{        scanf("%d", &p[i].first);        p[i].second=1;    }    scanf("%d", &m);    for(int i=n; i<n+m; i++)	{        scanf("%d", &p[i].first);        p[i].second=0;    }    sort(p, p+n+m);    p[n+m].first=-1;    int as=n*3, bs=m*3, ansa, ansb;    int MAX = -0xfffffff;        for(int i=0; i<=n+m; i++)	{        if(i==0||p[i].first!=p[i-1].first)		{            if(as-bs>MAX)			{                MAX=as-bs;                ansa=as;                ansb=bs;            }        }        if(p[i].second==1) as--;		else bs--;    }    printf("%d:%d\n", ansa, ansb);    return 0;}




Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn