Problem 0148 : Candy and Class Flag
#include <iostream>
#include <iomanip>
using namespace std;
int main(void)
{
int n;
while( cin >> n ){
cout << "3C";
cout.width(2);
cout.fill('0');
if( n%39 )
cout << n%39 << endl;
else
cout << 39 << endl;
}
return 0;
}
Problem 0149 : Eye Test
#include <iostream>
using namespace std;
int main(void)
{
int i, j;
int m[4][2] = {0};
double e[2];
while( cin >> e[0] >> e[1] ){
for( i=0; i<2; i++ ){
if( e[i] >= 1.1 )
m[0][i]++;
else if( e[i] >= 0.6 )
m[1][i]++;
else if( e[i] >= 0.2 )
m[2][i]++;
else
m[3][i]++;
}
}
for( i=0; i<4; i++ ){
for( j=0; j<2; j++ ){
if( j ) cout << " ";
cout << m[i][j];
}
cout << endl;
}
return 0;
}
Problem 0150 : Twin Prime
#include <iostream>
#include <vector>
using namespace std;
int n;
vector<bool> primes;
void eratos()
{
int i, j;
primes[0] = primes[1] = false;
primes[2] = true;
for( i=3; i<=n; i++ ){
if( i%2 )
primes[i] = true;
else
primes[i] = false;
}
for( i=3; i*i<=n; i++ )
if( primes[i] )
for( j=i+i; j<=n; j+=i )
primes[j] = false;
return;
}
int main(void)
{
int i;
while( cin >> n, n!=0 ){
primes.clear();
primes.resize(n+1);
eratos();
for( i=n; i>=0; i-- ){
if( primes[i] && primes[i-2] ){
cout << i-2 << " " << i << endl;
break;
}
}
}
return 0;
}
Problem 0151 : Grid
#include <iostream>
#include <string>
using namespace std;
#define MAX 255
int n;
int cnt[MAX+2][MAX+2][8];
bool grid[MAX+2][MAX+2];
void calc()
{
int i, j, k;
int max;
int dx[8] = { 0, 1, 1, 1, 0, -1, -1, -1 };
int dy[8] = { 1, 1, 0, -1, -1, -1, 0, 1 };
max = 0;
for( i=1; i<=n; i++ ){
for( j=1; j<=n; j++ ){
if( grid[i][j] ){
for( k=0; k<8; k++ ){
cnt[i+dx[k]][j+dy[k]][(k+4)%8] = cnt[i][j][(k+4)%8]+1;
if( max < cnt[i+dx[k]][j+dy[k]][(k+4)%8] )
max = cnt[i+dx[k]][j+dy[k]][(k+4)%8];
}
}
}
}
cout << max << endl;
return;
}
int main(void)
{
int i, j, k;
string input;
while( cin >> n, n!=0 ){
for( i=0; i<=n+1; i++ ){
for( j=0; j<=n+1; j++ ){
grid[i][j] = false;
for( k=0; k<8; k++ )
cnt[i][j][k] = 0;
}
}
for( i=1; i<=n; i++ ){
cin >> input;
for( j=1; j<=n; j++ ){
if( input[j-1] == '1' )
grid[i][j] = true;
}
}
calc();
}
return 0;
}
Problem 0152 : Bowling
#include <iostream>
#include <vector>
using namespace std;
int main(void)
{
int m, f, input;
int i, j;
char ch;
vector<int> id, p, work;
while( cin >> m, m != 0 ){
id.resize(m); p.resize(m);
for( i=0; i<m; i++ ){
cin >> id[i];
work.clear();
while( cin.get(ch), ch != '\n' ){
cin.putback(ch);
cin >> input;
work.push_back(input);
}
p[i] = 0; j = 0;
for( f=1; f<10; f++ ){
p[i] += work[j];
if( work[j] == 10 ){
p[i] += work[j+1] + work[j+2];
j++;
continue;
}
j++;
p[i] += work[j];
if( work[j-1]+work[j] == 10 )
p[i] += work[j+1];
j++;
}
while( j < work.size() ){
p[i] += work[j];
j++;
}
}
int max;
for( i=0; i<p.size(); i++ ){
max = 0;
for( j=1; j<p.size(); j++ ){
if( p[max] < p[j] )
max = j;
if( p[max] == p[j] )
max = ( id[max] < id[j] ) ? max : j;
}
cout << id[max] << " " << p[max] << endl;
p[max] = -1;
}
}
return 0;
}