abc bc
YES NO
很猥琐的一道题
AC代码:
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define LL long long
#define INF 0x7fffffff
using namespace std;
char str[350];
int main() {
while(scanf("%s", str) != EOF) {
int len = strlen(str);
if(len <= 2 || len % 3 != 0 || str[0] == str[len - 1]) {
printf("NO\n");
continue;
}
int a[5] = {0, 0, 0};
int sum = 0;
char cur = str[0];
for(int i = 0; i < len; i++) {
if(str[i] == cur) a[sum]++;
else {
sum++;
a[sum] ++;
cur = str[i];
}
}
//printf("%d %d %d %d\n", a[0], a[1], a[2], sum);
int tmp = len / 3;
if((len % 3 == 0) && sum == 2 && a[0] == tmp && a[1] == tmp && a[2] == tmp) printf("YES\n");
else printf("NO\n");
}
return 0;
}
4 3 1 2 3 4 1 1 4
1 0 1HintHuge input, fast IO is recommended.
卡输入,要快速读入,不过貌似不写快速读入也行╮(╯▽╰)╭,心累啊,我还多交了一遍
AC代码:
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cctype>
#include <map>
using namespace std;
int n, m;
inline int readint()
{
char c = getchar();
while(!isdigit(c)) c = getchar();
int x = 0;
while(isdigit(c))
{
x = x * 10 + c - '0';
c = getchar();
}
return x;
}
int buf[10];
inline void writeint(int i)
{
int p = 0;
if(i == 0) {
p++;
buf[0] = 0;
}
else while(i)
{
buf[p++] = i % 10;
i /= 10;
}
for(int j = p-1; j >= 0; j--) putchar('0' + buf[j]);
}
int main() {
while(scanf("%d %d", &n, &m) != EOF) {
map<int, int> mp;
for(int i = 0; i < n; i++) {
int t = readint();
mp[t] ++;
}
for(int i = 0; i < m; i++) {
int t = readint();
//printf("%d\n", mp[t]);
writeint(mp[t]);
putchar(10);
mp[t] = 0;
}
}
return 0;
}
HDU - 5198 - Strange Class && 5199 - Gunner
原文:http://blog.csdn.net/u014355480/article/details/44876707