目录
A - Settlers' Training
题目链接https://codeforces.com/problemset/problem/63/B
AC代码:
#include <bits/stdc++.h>
using namespace std;
const int mac = 2e6 + 10;
string s[mac];
int num[mac], vis[mac], a[mac];
int main()
{
int n, k;
scanf("%d%d", &n, &k);
for (int i = 1; i <= n; i++)
scanf("%d", &a[i]);
sort(a + 1, a + 1 + n);
int cnt = 0;
while (1) {
int mark = 0;
for (int i = 1; i <= k; i++) vis[i] = 0;
for (int i = 1; i <= n; i++) {
if (a[i] >= k) continue;
if (!vis[a[i]]) vis[a[i]] = 1, a[i]++, mark = 1;
}
if (mark) cnt++;
else break;
}
printf("%d\n", cnt);
return 0;
}
B - Bulls and Cows
题目链接https://codeforces.com/problemset/problem/63/C
AC代码:
#include <bits/stdc++.h>
using namespace std;
const int mac = 200;
char s[mac][10];
int num[mac], vis[mac], a[mac], b[mac];
int main()
{
int n;
scanf ("%d",&n);
for (int i = 1; i <= n; i++) {
scanf("%s%d%d", s[i], &a[i], &b[i]);
}
int num=0,ans=0;
for (int i=0; i<=9; i++){//千
for (int j=0; j<=9; j++){//百
if (j==i) continue;
for (int k=0; k<=9; k++){//十
if (k==i || k==j) continue;
for (int p=0; p<=9; p++){//个
if (p==i || p==j || p==k) continue;
int mark=0;
for (int q=1; q<=n; q++){
int us=0,oth=0;
if (i==s[q][0]-'0') us++;
if (j==s[q][1]-'0') us++;
if (k==s[q][2]-'0') us++;
if (p==s[q][3]-'0') us++;
if (i==s[q][1]-'0' || i==s[q][2]-'0' || i==s[q][3]-'0') oth++;
if (j==s[q][0]-'0' || j==s[q][2]-'0' || j==s[q][3]-'0') oth++;
if (k==s[q][1]-'0' || k==s[q][0]-'0' || k==s[q][3]-'0') oth++;
if (p==s[q][1]-'0' || p==s[q][2]-'0' || p==s[q][0]-'0') oth++;
if (us!=a[q] || oth!=b[q]){
mark=1;break;
}
}
if (!mark) {
num++;ans=i*1000+j*100+k*10+p;
//printf ("%d\n",ans);
}
}
}
}
}
if (num==0) printf ("Incorrect data\n");
else if (num==1) {
printf ("%04d\n",sss);
}
else printf ("Need more data\n");
return 0;
}
C - Petya and Java
题目链接https://codeforces.com/problemset/problem/66/A
AC代码:
#include <bits/stdc++.h>
using namespace std;
const int mac = 200;
char s[mac];
int num[mac], vis[mac], a[mac], b[mac];
int main()
{
scanf("%s", s);
int len = strlen(s);
if (len >= 20) printf("BigInteger\n");
else {
unsigned long long ss = 0;
for (int i = 0; i < len; i++) {
ss = ss * 10 + s[i] - '0';
}
if (ss <= 127) printf("byte\n");
else if (ss <= 32767) printf("short\n");
else if (ss <= 2147483647) printf("int\n");
else if (ss <= 9223372036854775807) printf("long\n");
else printf("BigInteger\n");
}
return 0;
}
D - Petya and Countryside
题目链接https://codeforces.com/problemset/problem/66/B
AC代码:
#include <bits/stdc++.h>
using namespace std;
const int mac = 1e3 + 10;
char s[mac];
int num[mac], vis[mac], a[mac], b[mac];
int main()
{
int n;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%d", &a[i]);
}
int ans = 0, cnt = 0;
for (int i = 1; i <= n; i++) {
cnt = 0;
for (int j = i; j >1; j--) {
if (a[j - 1] <= a[j]) cnt++;
else break;
}
for (int j = i; j < n; j++) {
if (a[j + 1] <= a[j]) cnt++;
else break;
}
ans = max(ans, cnt+1);
}
printf("%d\n", ans);
return 0;
}
E - Petya and File System
题目链接https://codeforces.com/problemset/problem/66/C
AC代码:
#include <bits/stdc++.h>
using namespace std;
#define ll long long
string s;
int main()
{
//freopen("in.txt", "r", stdin);
string rt;
map<string, set<string>>folder, files;
while (cin >> s) {
int es = 0;
for (int i = 0; s[i]; i++) {
if (s[i] == '\\') {
es++;
if (es == 2) rt = s.substr(0, i);
else if (es > 2) folder[rt].insert(s.substr(0, i));
}
}
files[rt].insert(s);
}
int ans1 = 0, ans2 = 0;
map<string, set<string>>::iterator it;
for (it = folder.begin(); it != folder.end(); it++) {
ans1 = max(ans1, (int)it->second.size());
}
for (it = files.begin(); it != files.end(); it++) {
ans2 = max(ans2, (int)it->second.size());
}
cout << ans1 << " " << ans2 << endl;
return 0;
}
F - Petya and His Friends
题目链接https://codeforces.com/problemset/problem/66/D
AC代码:
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{
int n, num = 0;
scanf("%d", &n);
if (n == 1) printf("%d\n", 1);
else if (n == 2) printf("-1\n");
else if (n == 3) printf("10\n15\n6\n");
else {
printf("10\n15\n6\n");
ll ans = 6;
for (int i = 4; i <= n; i++) {
cout << i*6 << endl;
}
}
return 0;
}