ANGLES

#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,a,b,c;
scanf("%d",&n);
while (n--)
{
scanf("%d%d%d",&a,&b,&c);
if (a+b+c==180)
{
printf("%d %d %d Seems OK
",a,b,c);
}
else
{
printf("%d %d %d Check
",a,b,c);
}
}
}
GOLF CROQUET


#include<bits/stdc++.h>
#define po set<node>::iterator
using namespace std;
const int maxn = 1e5 + 10;
int n, cnts, cntt, len, sw, tw;
char s[maxn], t[maxn], o[maxn];
int main() {
//freopen("1.txt", "r", stdin);
char ch;
while (ch = getchar()) {
if (ch == '
')break;
s[++cnts] = ch;
}
while (ch = getchar()) {
if (ch == '
')break;
t[++cntt] = ch;
}
int flag=0;
scanf("%d", &len);
scanf("%s", o + 1);
for (int i = 1; i <= len; ++i) {
if (i % 2) {
if (o[i] == 'S')continue;
if (o[i] == 'H') {
sw++;
if (sw == 7){
if(i<len)flag=1;
goto ed;
}
}
if (o[i] == 'D') {
if (sw + 2 > 7) {
sw=7;
if(i<len)flag=1;
goto ed;
} else if (sw + 2 == 7) {
sw += 2;
if(i<len)flag=1;
goto ed;
} else {
sw += 2;
//cout<<"debug i="<<i<<' '<<sw<<endl;
}
}
if (o[i] == 'O') {
tw++;
if (tw == 7) {
if(i<len)flag=1;
goto ed;
}
}
} else {
if (o[i] == 'S')continue;
if (o[i] == 'H') {
tw++;
if (tw == 7){
//if(i<len)flag=1;
goto ed;
}
}
if (o[i] == 'D') {
if (tw + 2 > 7) {
tw=7;
//if(i<len)flag=1;
goto ed;
} else if (tw + 2 == 7) {
tw += 2;
//if(i<len)flag=1;
goto ed;
} else {
tw += 2;
}
}
//O H H O H
//S S D S D
if (o[i] == 'O') {
sw++;
if (sw == 7) {
if(i<len)flag=1;
goto ed;
}
}
}
}
ed:;
int ss = 1, tt = 1;
while (ss <= cnts) {
printf("%c", s[ss++]);
}
printf(" ");
printf("%d ", sw);
while (tt <= cntt) {
printf("%c", t[tt++]);
}
printf(" ");
printf("%d", tw);
printf(". ");
if (sw != tw && max(sw, tw) != 7) {
if (sw > tw) {
ss = 1;
while (ss <= cnts) {
printf("%c", s[ss++]);
}
} else if (sw < tw) {
tt = 1;
while (tt <= cntt) {
printf("%c", t[tt++]);
}
}
printf(" is winning.
");
} else if (sw != tw && max(sw, tw) == 7) {
if (sw > tw) {
ss = 1;
while (ss <= cnts) {
printf("%c", s[ss++]);
}
} else if (sw < tw) {
tt = 1;
while (tt <= cntt) {
printf("%c", t[tt++]);
}
}
printf(" has won.
");
} else {
printf("All square.
");
}
return 0;
}
BYTE ME!


#include<bits/stdc++.h>
#define po set<node>::iterator
using namespace std;
const int maxn=1e5+10;
int n;
int c[16][10];
int o[10],q[16],s[16];
int main(){
//freopen("1.txt","r",stdin);
scanf("%d",&n);
for(int i=1;i<=n;++i){
for(int j=1;j<=8;++j){
scanf("%d",&c[i][j]);
}
for(int j=1;j<=8;++j){
if(c[i][j])q[i]++;
}
q[i]=q[i]%2;
}
int cnt=0;
for(int i=1;i<=8;++i){
scanf("%d",o+i);
if(o[i])cnt++;
}
cnt=cnt%2;
int cnt1=0,cnt2=0;
for(int i=1;i<=n;++i){
if(q[i]) cnt1++;
else cnt2++;
}
if(cnt1==1){
printf("Even
");
cnt=1;
}
else
{
printf("Odd
");
cnt=0;
}
for(int i=1;i<=n;++i){
if(q[i]==cnt){
printf("Byte %d is broken
",i);
break;
}
}
for(int i=1;i<=8;++i){
for(int j=1;j<=n;++j){
if(c[j][i]){
s[i]++;
}
}
}
for(int i=1;i<=8;++i){
if(o[i]){
s[i]++;
}
s[i]=s[i]%2;
}
int ss=0,tt=0,ids,idt;
for(int i=1;i<=8;++i){
if(s[i]){
ss++;
ids=i;
}
else{
tt++;
idt=i;
}
}
if(ss==1){
printf("Bit %d is broken
",ids);
}
else{
printf("Bit %d is broken
",idt);
}
return 0;
}
TREES


#include<bits/stdc++.h>
using namespace std;
struct node
{
char c;
node* lc=NULL;
node* rc=NULL;
int h,hl,hr;
void geths()
{
if (lc!=NULL) lc->geths();
if (rc!=NULL) rc->geths();
hl= lc==NULL?0:lc->h+(lc->rc==0);
hr= rc==NULL?0:rc->h+(rc->lc==0);
h=1+hl+hr;
}
};
void build(node* &root)
{
char cc;
scanf(" %c",&cc);
if (cc=='@')
{
return;
}
root = new node();
root->c=cc;
build(root->lc);
build(root->rc);
}
const int N = 405;
char a[N+5][N+5];
void print(node*p,int sx,int sy)
{
if (p==NULL) return;
int x=sx,y=sy;
if (p->lc!=NULL)
{
for (int i=1; i<p->lc->hr; i++)
{
x--;
a[x][y]='|';
}
x--;
y++;
a[x][y]='/';
x--;
y++;
print(p->lc,x,y);
}
a[sx][sy]=p->c;
x=sx;
y=sy;
if (p->rc!=NULL)
{
for (int i=1; i<p->rc->hl; i++)
{
x++;
a[x][y]='|';
}
x++;
y++;
a[x][y]='\';
x++;
y++;
print(p->rc,x,y);
}
}
int main()
{
int _,ca=0;
scanf("%d",&_);
while (_--)
{
printf("Graph %d
",++ca);
memset(a,' ',sizeof(a));
node *root;
build(root);
root->geths();
print(root,root->hl+1,0);
for (int i=1; i<=root->h; i++)
{
int jend=N;
for (; a[i][jend]==' '; jend--);
a[i][jend+1]=0;
printf("%s
",a[i]);
}
printf("
");
}
return 0;
}
PACKING

import java.util.Scanner;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner cin=new Scanner(System.in);
int _=cin.nextInt();
for (int t=1;t<=_;t++){
int w[]=new int[110];
int v[]=new int[110];
int dp[][]=new int[1100][1100];
int n=cin.nextInt();
int w1=cin.nextInt();
int w2=cin.nextInt();
for (int i=1;i<=n;i++){
w[i]=cin.nextInt();
}
for (int i=1;i<=n;i++){
v[i]=cin.nextInt();
}
for (int i=1;i<=n;i++){
for (int j=w1;j>=0;j--){
for (int k=w2;k>=0;k--){
if (j>=w[i]) dp[j][k]=max(dp[j][k],dp[j-w[i]][k]+v[i]);
if (k>=w[i]) dp[j][k]=max(dp[j][k],dp[j][k-w[i]]+v[i]);
}
}
}
System.out.println("Problem "+t+": "+dp[w1][w2]);
}
}
static int max(int a,int b){
if (a>b) return a;
return b;
}
}
DOMINO KKILLING




#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int>PII;
map<PII,char>m;
int ans;
void solve(int s,int t,int x,int y,int cnt)
{
ans=max(ans,cnt);
if (s<0||t<0)
{
return;
}
if (m[make_pair(s,t)]=='-')
{
m[make_pair(s,t)]='.';
if (y==1)
{
solve(s,t+1,0,1,cnt+1);
}
else
{
if (y==-1)
{
solve(s,t-1,0,-1,cnt+1);
}
else
{
return;
}
}
}
else if (m[make_pair(s,t)]=='|')
{
m[make_pair(s,t)]='.';
if (x==1)
{
solve(s+1,t,1,0,cnt+1);
}
else
{
if (x==-1)
{
solve(s-1,t,-1,0,cnt+1);
}
else
{
return;
}
}
}
else if (m[make_pair(s,t)]=='\')
{
m[make_pair(s,t)]='.';
if (x==1&&y==-1||x==1&&y==0||x==0&&y==-1)
{
solve(s+1,t-1,1,-1,cnt+1);
}
else if (x==-1&&y==1||x==-1&&y==0||x==0&&y==1)
{
solve(s-1,t+1,-1,1,cnt+1);
}
else
return;
}
else if (m[make_pair(s,t)]=='/')
{
m[make_pair(s,t)]='.';
if (x==1&&y==1||(x+y)==1)
{
solve(s+1,t+1,1,1,cnt+1);
}
else if (x==-1&&y==-1||(x+y)==-1)
{
solve(s-1,t-1,-1,-1,cnt+1);
}
else
return;
}
else return;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
int n,s,x,y;
while (cin>>n>>s>>x>>y)
{
if (x==0&&y==0&&n==0&&s==0)
{
break;
}
m.clear();
int a,b,S,T;
char c;
ans=0;
for (int i=0; i<n; i++)
{
cin>>a>>b>>c;
m[make_pair(a,b)]=c;
if (i==s)
{
S=a;
T=b;
}
}
solve(S,T,x,y,0);
printf("%d
",ans);
}
return 0;
}