2011 신입생 연습 경기 3 문제 풀이 보고서

8765 단어 cstruct
A:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
char s[209];
int main()
{
    while(scanf("%s",s)!=EOF)
    {
        int len=strlen(s);
        int ans=0;
        for(int i=0;i<len;i++)
        {
            for(int j=i+1;j<len;j++)
            {
                for(int k=j+1;k<len;k++)
                {
                    if(s[i]=='1'&&s[j]=='3'&&s[k]=='0')
                    {
                        if(i+1==j&&j+1==k)
                        {
                            ans+=52;
                        }
                        else if(i+1==j||j+1==k)
                        {
                            ans+=19;
                        }
                        else
                        {
                          ans+=1;
                        }
                    }
                }
            }
        }
        printf("Xiao Huihui: %d
",ans); } return 0; } B: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; struct E { int x1,y1; int x2,y2; }p,q,pp,qq; int main() { int ca; scanf("%d",&ca); while(ca--) { scanf("%d%d%d%d",&pp.x1,&pp.y1,&pp.x2,&pp.y2); p.x1=min(pp.x1,pp.x2); p.x2=max(pp.x1,pp.x2); p.y1=max(pp.y1,pp.y2); p.y2=min(pp.y1,pp.y2); scanf("%d%d%d%d",&qq.x1,&qq.y1,&qq.x2,&qq.y2); q.x1=min(qq.x1,qq.x2); q.x2=max(qq.x1,qq.x2); q.y1=max(qq.y1,qq.y2); q.y2=min(qq.y1,qq.y2); if(p.x1>=q.x1&&p.x1<=q.x2&&p.y1>=q.y2&&p.y1<=q.y1) { puts("Hit");continue; } if(p.x2>=q.x2&&p.x1<=q.x2&&p.y2>=q.y2&&p.y2<=q.y1) { puts("Hit");continue; } if(p.x1>=q.x1&&p.x1<=q.x2&&p.y2>=q.y2&&p.y2<=q.y1) { puts("Hit");continue; } if(p.x2>=q.x1&&p.x2<=q.x2&&p.y1>=q.y2&&p.y1<=q.y1) { puts("Hit");continue; } if(q.x1>=p.x1&&q.x1<=p.x2&&q.y1>=p.y2&&q.y1<=p.y1) { puts("Hit");continue; } if(q.x2>=p.x2&&q.x1<=p.x2&&q.y2>=p.y2&&q.y2<=p.y1) { puts("Hit");continue; } if(q.x1>=p.x1&&q.x1<=p.x2&&q.y2>=p.y2&&q.y2<=p.y1) { puts("Hit");continue; } if(q.x2>=p.x1&&q.x2<=p.x2&&q.y1>=p.y2&&q.y1<=p.y1) { puts("Hit");continue; } puts("Miss"); } return 0; } C: , 。 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; int main() { int r1,r2; while(scanf("%d%d",&r1,&r2),r1+r2) { double ans=r1+r2; if(r1>r2)swap(r1,r2); ans+=sqrt(1.0*(r1+r2)*(r1+r2)-1.0*(r2-r1)*(r2-r1)); printf("%.2lf
",max(ans,2.0*r2)); } return 0; } D: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; long long w,s,x,y,ansx; int main() { while(scanf("%I64d%I64d%I64d%I64d",&w,&s,&x,&y),w+s+x+y) { ansx=(x-s)+x; if(ansx>w) { ansx=2*w-ansx; } if(ansx<0) { ansx=-ansx; } printf("%d
",ansx); } return 0; } E: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; const int M=200009; struct P { int x; int l; }p[M]; bool cmp(P a,P b) { return a.x>b.x; } int main() { int n,m,a,b; while(scanf("%d",&n),n) { for(int i=1;i<=n;i++) { scanf("%d",&p[i]); } sort(p+1,p+n+1,cmp); for(int i=1;i<=n;i++) { p[i].l=i; } scanf("%d",&m); while(m--) { scanf("%d%d",&a,&b); int ans1=10000000,ans2=0; for(int i=1;i<=n;i++) { if(p[i].x<=b&&p[i].x>=a) { if(p[i].l<ans1) { ans1=p[i].l; } if(p[i].l>ans2) { ans2=p[i].l; } } } if(ans1==10000000)ans1=0; printf("%d %d
",ans1,ans2); } } return 0; } F: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; int a,b; int main() { while(scanf("%d%d",&a,&b),a+b) { if(a%2==0||b%2==0) { puts("Alice"); } else { puts("Bob"); } } return 0; } G: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; int a[5][5]; int aa[5][5]; void change(int j) { int x,y; if(j==0) { x=0; y=1; } else if(j==1) { x=0; y=2; } else if(j>=2&&j<=5) { x=1; y=j-2; } else if(j>=6&&j<=9) { x=2; y=j-6; } else { x=3; y=j-9; } for(int i=0;i<4;i++) { a[x][i]=a[x][i]^1; if(i!=x) a[i][y]=a[i][y]^1; } } int sum() { int res=0; res+=a[0][1]; res+=a[0][2]; for(int i=1; i<=2; i++) { for(int j=0; j<4; j++) res+=a[i][j]; } res+=a[3][1]; res+=a[3][2]; return res; } int iff(int x) { if(x==0)return 0; else return 1; } int main() { int ca,tmp; scanf("%d",&ca); while(ca--) { scanf("%d%d",&aa[0][1],&aa[0][2]); for(int i=1; i<=2; i++) { for(int j=0; j<4; j++) scanf("%d",&aa[i][j]); } scanf("%d%d",&aa[3][1],&aa[3][2]); int Max=1<<12,ans=1<<30,TT=0; for(int i=0; i<Max; i++) { for(int i=0;i<4;i++) { for(int j=0;j<4;j++) a[i][j]=aa[i][j]; } int num=0; for(int j=0; j<12; j++) { if(i&(1<<j)) { change(j); num++; } } int s=sum(); if(s==0||s==12) { // cout<<num<<" "<<ans<<endl; if(num<ans) { ans=num; TT=1; tmp=i; } else if(num==ans) { TT=2; } } } // cout<<TT<<" DD"<<endl; if(TT==1) { printf("%d
",ans); printf(" "); printf("%d %d
",iff(tmp&(1<<0)),iff(tmp&(1<<1))); int f=2; for(int i=1;i<3;i++) { int flag=1; for(int j=0;j<4;j++) { if(flag) { printf("%d",iff(tmp&(1<<f))); flag=0; } else printf(" %d",iff(tmp&(1<<f))); f++; } puts(""); } printf(" %d %d
",iff(tmp&(1<<10)),iff(tmp&(1<<11))); } else { printf("%d
",ans); printf("123.cpp
"); } } return 0; }

좋은 웹페이지 즐겨찾기