昨天这场cf打的还挺爽的,不过就是没咋涨rating,没把握好涨rating的机会。。
本来可以过四题的,,但是很失败,重评后跪了两道。。唉:-(
a. vasya and football
思路:给每个人计数,黄牌+1,红牌+2。
当数字第一次超过2时输出。
题目链接:a. vasya and football
ac代码:
#include #include #include #include #include #include using namespace std;struct node { char name[25]; int a[105];}home, away;int main(){ for(int i=0; i
b. vasya and wrestling
思路:先用sum是否为0判断分高的,sum>0 => first, sum second,
sum=0则相同,再判断字典序,如果再相同则判断最后一次动作。
注意sum需要long long。
题目链接:b. vasya and wrestling
ac代码:
#include #include #include #include #include #include using namespace std;int judge(int a[], int b[], int na, int nb){ int i, j; for(i=0, j=0; ib[i])return 1; else if(a[i]0)a[na++] = t; else if(t0)printf(first\n); else if(sum0)printf(first\n); else if(judge(a,b,na,nb)==2&&t
c. vasya and basketball
思路:给所有球排序,先把全部都赋值为3,然后依次减为2,再判断其中间过程的max
昨天做题的时候有点小混乱。。
题目链接:c. vasya and basketball
ac代码:
#include #include #include #include #include #include #include #include using namespace std; #define ll long long #define inf 0xfffffffpair p[400010];int main(){ int n, m; scanf(%d, &n); for(int i=0; imax) { max=as-bs; ansa=as; ansb=bs; } } if(p[i].second==1) as--; else bs--; } printf(%d:%d\n, ansa, ansb); return 0;}
d. vasya and chess
思路:貌似这题有点水。。
题目链接:d. vasya and chess
ac代码:
#include #include #include #include #include #include using namespace std;int main(){ int n; scanf(%d, &n); if(n%2==1) printf(black\n); else if(n%2==0) { printf(white\n1 2\n); } return 0;}