A题目传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3776
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main(){
int cas;
scanf("%d",&cas);
int now;
while(cas--){
int x,y,n,m;
x=y=0;
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++){
scanf("%d",&now);
x+=now;
}
for(int i=0;i<m;i++){
scanf("%d",&now);
y+=now;
}
if(x>y) printf("Calem\n");
else if(x<y) printf("Serena\n");
else printf("Draw\n");
}
return 0;
}
J题目传送门:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=44246#problem/J
转化为以秒为单位,排序即可得出。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn=20010;
struct node{
int time;
int index;
}a[maxn];
int ans[maxn];
/*
bool cmp(node A,node B){
if(A.hour<B.hour) return true;
else if(A.hour>B.hour) return false;
else{
if(A.mini<B.mini) return true;
else if(A.mini>B.mini) return false;
else{
if(A.sec<B.sec) return true;
else return false;
}
}
}
*/
bool cmp(node A,node B){
if(A.time<B.time) return true;
else return false;
}
int main(){
int cas;
scanf("%d",&cas);
while(cas--){
int n,l;
int hour,mini,sec;
scanf("%d%d",&n,&l);
for(int i=0;i<n;i++){
scanf("%d%*c%d%*c%d",&hour,&mini,&sec);
a[i].time=hour*3600+mini*60+sec;
a[i].index=i+1;
}
sort(a,a+n,cmp);
int cnt=0;
int tmp=a[0].time;
for(int i=0;i<n;i++){
if(a[i].time-tmp>=l){
ans[cnt++]=a[i].index;
tmp=a[i].time;
}
}
ans[cnt++]=a[0].index;
sort(ans,ans+cnt);
printf("%d\n",cnt);
for(int i=0;i<cnt;i++){
if(i==cnt-1) printf("%d\n",ans[i]);
else printf("%d ",ans[i]);
}
}
return 0;
}
G题目传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3782
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <stack>
using namespace std;
int prio(char c){
if(c=='*' || c=='/' || c=='%')
return 2;
else return 1;
}
//stack<int>q;
int cal(int a,int b,char c){
if(c=='+') return a+b;
else if(c=='-') return a-b;
else if(c=='*') return a*b;
else if(c=='/') return a/b;
else return a%b;
}
int main(){
int cas;
scanf("%d",&cas);
while(cas--){
int a,b,c;
char s1,s2;
scanf("%d %c%d %c%d",&a,&s1,&b,&s2,&c);
// q.push(a),q.push(b),q.push(c);
if(prio(s1)==prio(s2)){
printf("%d\n",cal(cal(a,b,s1),c,s2));
}
else if(prio(s1)<prio(s2)){
printf("%d\n",cal(a,cal(b,c,s2),s1));
}
else{
printf("%d\n",cal(cal(a,b,s1),c,s2));
}
}
return 0;
}