第1次CCF CSP认证真题解
1、相反数
题目链接:https://sim.csp.thusaac.com/contest/1/problem/0
100分代码:
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int n;
cin >> n;
int a[510];
for(int i = 0; i < n; i++){
cin >> a[i];
}
int ans = 0;
for(int i = 0; i < n; i++){
for(int j = i+1; j < n; j++){
if(a[i] == -a[j])ans++;
}
}
cout << ans << endl;
return 0;
}
评测结果:
2、窗口
题目链接:https://sim.csp.thusaac.com/contest/1/problem/1
100分代码:
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int N,M;
cin >> N >> M;
int x1[20],y1[20],x2[20],y2[20];
int flag[20];
for(int i = 1; i <= N; i++){
cin >> x1[i] >> y1[i] >> x2[i] >> y2[i];
flag[i] = i;
}
int x[20],y[20];
for(int i = 1; i <= M; i++){
cin >> x[i] >> y[i];
}
int top;
for(int i = 1; i <= M; i++){
int ans = 0;
for(int j = N; j >= 1; j--){
if(x[i] >= x1[flag[j]] && y[i] >= y1[flag[j]] && x[i] <= x2[flag[j]] && y[i] <= y2[flag[j]]){
cout << flag[j] << endl;
top = flag[j];
for(int k = j+1; k <= N; k++){
flag[k-1] = flag[k];
}
flag[N] = top;
ans++;
break;
}
}
if(ans == 0)cout << "IGNORED" << endl;
}
return 0;
}
评测结果: