Thursday, May 31, 2018

UVA - 11804 .cpp file

#include<bits/stdc++.h>
using namespace std;
struct info
{
    int x,y;
    string s;

    bool operator < (const info &b) const
    {
        if(x==b.x)
        {
            if(y==b.y)  return s<b.s;
            else
                return y<b.y;
        }
        else
            return x>b.x;
    }
};
int main()
{
    vector<info>v;
    vector<string>v1,v2;
    int t;
    cin>>t;
    for(int j=1; j<=t; j++)
    {
        int a,b;
        string c;
        info z;
        for(int i=0; i<10; i++)
        {
            cin>>z.s>>z.x>>z.y;
            v.push_back(z);
        }
        sort(v.begin(),v.end());

        for(int i=0; i<5; i++)
            v1.push_back(v[i].s);
        for(int i=5; i<10; i++)
            v2.push_back(v[i].s);
        sort(v1.begin(),v1.end());
        sort(v2.begin(),v2.end());
        cout<<"Case "<<j<<":"<<endl;
        cout<<"("<<v1[0];
        for(int i=1; i<5; i++)
            cout<<", "<<v1[i];
        cout<<")"<<endl;
        cout<<"("<<v2[0];
        for(int i=1; i<5; i++)
            cout<<", "<<v2[i];
        cout<<")"<<endl;
        v.clear();
        v1.clear();
        v2.clear();

    }
    return 0;
}

UVA - 11797 .cpp file

#include <iostream>
#include <queue>
using namespace std;

int getValue(string name)
{
    if(name=="Ja")
    {
        return 0;
    }
    else if(name=="Sam")
    {
        return 1;
    }
    else if(name=="Sha")
    {
        return 2;
    }
    else if(name=="Sid")
    {
        return 3;
    }
    else if(name=="Tan")
    {
        return 4;
    }
    return -1;
}


int main()
{
    int tc;
    cin >> tc;
    for(int d=1; d<=tc; d++)
    {
        int N,M, k;
        int di[6];
        string curr;
        string temp;
        string name;
        queue<string> l[6];
        for(int i=0; i<5; i++)
        {
            while(!l[i].empty())
            {
                l[i].pop();
            }
            di[i]=0;
        }
        cin >> M >> N >> curr;

        for(int i=0; i<5; i++)
        {
            cin >> k;
            while(k--)
            {
                cin >> name;
                l[i].push(name);
            }
        }

        int time=0;

        if(time+M<N)
        {
            di[getValue(curr)]+=M;
            time=time+M;
        }
        else
        {
            int tempInt = N-time;
            if(tempInt>0)
            {
                di[getValue(curr)]+=tempInt;
            }
            time=N;
        }

        while(time<N)
        {
            temp=curr;
            curr=l[getValue(curr)].front();
            l[getValue(temp)].pop();
            l[getValue(temp)].push(curr);
            if (time+2+M<N)
            {
                di[getValue(curr)]+=M;
                time=time+2+M;
            }
            else
            {
                int tempInt = N-time-2;
                if(tempInt>0)
                {
                    di[getValue(curr)]+=tempInt;
                }
                time=N;
            }
        }

        cout << "Case " << d << ":" << endl;
        cout << "Ja " << di[0] << endl;
        cout << "Sam " << di[1] << endl;
        cout << "Sha " << di[2] << endl;
        cout << "Sid " << di[3] << endl;
        cout << "Tan " << di[4] << endl;

    }
    return 0;
}

UVA - 11743 .cpp file

#include<stdio.h>
#include<string.h>
int main()
{
    char a[5],b[5],c[5],d[5];
    int k,s1,s2,st;
    while(scanf("%d",&k)==1)
    {
        getchar();
        while(k--)
        {
            scanf("%s %s %s %s",&a,&b,&c,&d);
            s1=s2=st=0;
            s1+=((a[0]-48)*2)/10+((a[0]-48)*2)%10+((a[2]-48)*2)/10+((a[2]-48)*2)%10;
            s1+=((b[0]-48)*2)/10+((b[0]-48)*2)%10+((b[2]-48)*2)/10+((b[2]-48)*2)%10;
            s1+=((c[0]-48)*2)/10+((c[0]-48)*2)%10+((c[2]-48)*2)/10+((c[2]-48)*2)%10;
            s1+=((d[0]-48)*2)/10+((d[0]-48)*2)%10+((d[2]-48)*2)/10+((d[2]-48)*2)%10;
            s2=a[1]-48+a[3]-48+b[1]-48+b[3]-48+c[1]-48+c[3]-48+d[1]-48+d[3]-48;
            st=s1+s2;
            if(st%10==0)printf("Valid\n");
            else printf("Invalid\n");
        }
    }
    return 0;
}

UVA - 11734 .cpp file

#include<stdio.h>
#include<string.h>
int main()
{
    char judge[30],team[30],team1[30];
    int kase,len1,len2,match,j,k,er;
    while(scanf("%d\n",&kase)==1)
    {
        for(int i=1; i<=kase; i++)
        {
            gets(team);
            gets(judge);
            printf("Case %d: ",i);
            len1=strlen(team);
            len2=strlen(judge);
            if((strcmp(judge,team))==0)printf("Yes\n");
            else
            {
                k=0;
                er=0;
                for(j=0; j<len1; j++)
                {
                    if((team[j]>='a'&&team[j]<='z')||(team[j]>='A'&&team[j]<='Z'))
                    {
                        team1[k]=team[j];
                        k++;
                    }
                }
                team1[k]='\0';
                for(j=0; j<len2; j++)
                {
                    if(judge[j]!=team1[j])
                    {
                        er++;
                        break;
                    }
                }
                if(len2==k && er ==0)printf("Output Format Error\n");
                else printf("Wrong Answer\n");
            }
        }
    }
    return 0;
}

UVA - 11728 .cpp file

#include <stdio.h>
#include <math.h>
int main()
{
    int n1,n2, s, i, j, k, t=1, f=0,p[100]= {0};

    while(scanf("%d", &n1)==1)
    {
        if(n1==0)
            break;
        for(n2=n1, f=0; n2>=1 ; n2--)
        {
            for(i=1, s=0; i<=sqrt(n2); i++)
            {
                if(n2%i==0)
                {
                    p[i]=n2/i;
                    s=s+p[i]+i;

                }
            }
//printf("%d\n",s);
            if(s==n1)
            {
                printf("Case %d: %d\n",t, n2);
                f=1;
                break;
            }
        }
        if(f==0)
            printf("Case %d: -1\n", t);

        t++;
    }
}

UVA - 11723 .cpp file

#include<bits/stdc++.h>
using namespace std;
#include<math.h>

int main()
{
    int count=0,a;
    double r,n,ans;
    while(scanf("%lf %lf",&r,&n)==2 && n!=0 && r!=0)
    {
        count++;
        if(r>(n+n*26))
        {
            printf("Case %d: impossible\n",count);
        }
        else
        {
            ans=ceil((r-n)/n);
            a=ans;
            printf("Case %d: %d\n",count,a);
        }
    }
    return 0;
}

UVA - 11716 .cpp file

#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
    int i,j,k,l,t,a;
    float b;
    char s[100000];
    while(scanf("%d",&t)==1)
    {
        getchar();
        while(t--)
        {
            gets(s);
            l=strlen(s);
            b=sqrt(l);
            a=sqrt(l);
            if(b==a)
                for(j=0; j<a; j++)
                    for(k=j; k<l; k+=a)
                        printf("%c",s[k]);
            else
                printf("INVALID");
            printf("\n");
        }
    }
}

UVA - 11715 .cpp file

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int  m,T=1;
    double u,v,t,a,s;
    while (scanf("%d",&m)&&m!=0)
    {
        u=v=a=t=s=0;
        switch (m)
        {
        case 1:
            scanf("%lf %lf %lf",&u,&v,&t);
            a=(v-u)/t;
            s=u*t+.5*a*t*t;
            printf("Case %d: %.3lf %.3lf\n",T,s,a);
            break;
        case 2:
            scanf("%lf %lf %lf",&u,&v,&a);
            t=(v-u)/a;
            s=u*t+.5*a*t*t;
            printf("Case %d: %.3lf %.3lf\n",T,s,t);
            break;
        case 3:
            scanf("%lf %lf %lf",&u,&a,&s);
            t=(sqrt(u*u+2.0*s*a)-u)/a;
            v=u+a*t;
            printf("Case %d: %.3lf %.3lf\n",T,v,t);
            break;
        case 4:
            scanf("%lf %lf %lf",&v,&a,&s);
            u=sqrt(v*v-2.0*s*a);
            t=(v-u)/a;
            printf("Case %d: %.3lf %.3lf\n",T,u,t);
            break;
        }
        T++;
    }
}

UVA - 11713 .cpp file

#include<bits/stdc++.h>
using namespace std;
int main()
{
    char a[100],b[100];
    int n;
    while(scanf("%lld",&n)==1)
    {
        for(int i=1; i<=n; i++)
        {
            scanf("%%",a,b);
            if(strlen(a)!=strlen(b))  cout<<"No"<<"\n";
            else
            {
                if(a[0]==b[0])
                    cout<<"Yes"<<"\n";
                else
                    cout<<"No"<<"\n";
            }
        }
    }

    return 0;
}

UVA - 11703 .cpp file

#include<bits/stdc++.h>
using namespace std;
#define max 1000000
int ar[max+2];
int p(int n)
{
    if(ar[n]!=-1)
        return ar[n];
    int a=p((int)(n-sqrt(n)))%max;
    int b=p((int)(log(n)))%max;
    int c=p((int)(n*sin(n)*sin(n)))%max;
    ar[n]=(a+b+c)%max;
    return ar[n];
}
int main()
{
    int n;
    memset(ar,-1,sizeof(ar));
    ar[0]=1;
    while(cin>>n and n>=0)
    {
        cout<<p(n)<<endl;
    }
    return 0;
}

UVA - 11689 .cpp file

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long m,l, n,k,x;
    while(cin>>n)
    {
        for(int i=1; i<=n; i++)
        {
            cin>>m>>l>>k;
            int c=0;
            x=m+l;
            while(x>=k)
            {
                c+=x/k;
                x=x%k+x/k;
            }
            cout<<c<<"\n";
        }
    }
    return 0;

}

UVA - 11687 .cpp file

#include <bits/stdc++.h>
using namespace std;
char s[1000005];
int main()
{
    while(scanf("%s", s) == 1)
    {
        if(!strcmp(s, "END"))
            break;
        int x = strlen(s), idx = 1, last;
        while(1)
        {
            if(x == 1 && s[0] == '1')
                break;
            sprintf(s, "%d", x);
            //  cout<<x<<" "<<last<<endl;
            last = x, x = strlen(s);
            idx++;
            if(last == x)
                break;
        }
        printf("%d\n", idx);
    }
    return 0;
}

UVA - 11650 .cpp file

#include <stdio.h>
int main()
{
    int t,a,b;
    scanf("%d", &t);
    while(t--)
    {
        scanf("%d:%d",&a,&b);
        a=11-a+(b==0);
        if(a<=0)
            a=a+12;
        if(a!=0)
            b=60-b;
        if(b==60)
            b=0;
        printf("%02d:%02d\n",a,b);
    }
    return 0;
}

UVA - 11645 .cpp file

#include <bits/stdc++.h>
using namespace std;
#include <string.h>

long long n, a, b;
const long long DIG = 1e13;
void add(long long num)
{
    b += num;
    a += b / DIG;
    b %= DIG;
}

int main()
{
    int cas = 0;
    while (scanf("%lld", &n) && n >= 0)
    {
        a = b = 0;
        long long tmp = n, d = 1;
        while (n > 1)
        {
            add((n/4) * d);
            if ((n&3) == 3)
                add((tmp&(d - 1)) + 1);
            d *= 2;
            n /= 2;
        }
        printf("Case %d: ", ++cas);
        if (a)
        {
            printf("%lld", a);
            printf("%013lld\n", b);
        }
        else printf("%lld\n", b);
    }
    return 0;
}

UVA - 11636 .cpp file

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int k,n,i=0;
    while(cin>>k)
    {
        n=k;
        if (n <= -1) break;

        n -= 1;
        int moves = 0;
        while (n > 0)
        {
            n = n/2;
            moves += 1;
        }
        printf("Case %d: %d\n", ++i, moves);
    }
}

UVA - 11614 .cpp file

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long  t,a,s;
    cin>>t;
    while(t--)
    {
        cin>>s;
        a=(-1+sqrt(1+4*2*s))/2;
        cout<<a<<"\n";

    }
    return 0;
}

UVA - 11609 .cpp file

#include<bits/stdc++.h>
using namespace std;
#define MOD 1000000007

long long dp(long long p)
{
    long long temp;
    if ( p == 1 ) return 2;
    if ( p % 2 == 0 )
    {
        temp = dp(p/2);
        return (temp * temp) % MOD;
    }
    else
        return (dp(p - 1)*2);
}
int main ()

{
    int t,i;
    cin>>t;
    for(i=1; i<=t; i++)
    {
        int n;
        cin>>n;
        cout<<"Case #"<<i<<": ";
        if(n==1)
            cout<<"1"<<endl;
        else
            cout << (((dp(n - 1)%MOD) * (n % MOD)) % MOD) << endl;
    }
    return 0;
}

UVA - 11608 .cpp file

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a[20],b[20],no=0;
    while(scanf("%d",&a[0]))
    {
        if(a[0]<0)
            break;
        for(int i=1; i<=12; i++)
            scanf("%d",&a[i]);
        for(int i=0; i<12; i++)
            scanf("%d",&b[i]);
        printf("Case %d:\n",++no);
        for(int i=0; i<12; i++)
        {
            if(a[i]-b[i]>=0)
            {
                a[i+1]=a[i+1]+a[i]-b[i];
                printf("No problem! :D\n");
            }
            else
            {
                a[i+1]+=a[i];
                printf("No problem. :(\n");
            }
        }
    }
    return 0;
}

UVA - 11597 .cpp file

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,i=0;
    while(cin>>n,n)
    {
        cout<<"Case "<<++i<<": "<<n/2<<endl;
    }
}

UVA - 11588 .cpp file

#include<bits/stdc++.h>
using namespace std;

int main()
{
    int T,R,C,M,N,cont[26];
    char I[21];

    cin>>T;

    for(int tc = 1; tc <= T; ++tc)
    {
        cin>>R>>C>>M>>N;

        memset(cont,0,sizeof(cont));

        for(int i = 0; i < R; ++i)
        {
            cin>>I;
            for(int j = 0; j < C; ++j) ++cont[I[j]-'A'];
        }

        // int max = 0,imp = 0;
        sort(cont,cont+26,greater<int>());
        int max = cont[0],imp = 1;
        for(int i = 1; i < 26; ++i)
        {
            if(cont[i] == max)
            {
                ++imp;
            }
        }

        printf("Case %d: %d\n",tc,M * max * imp + N * (R * C - max * imp));
    }

    return 0;
}

UVA - 11586 .cpp file

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int N,count1,count2;
    string str;
    scanf("%d\n", &N);
    while(N--)
    {
        count1 = count2 = 0;
        getline(cin,str);
        for(int i = 0; i < str.length(); i++)
        {
            if(str[i] == 'M')
                count1++;
            if(str[i] == 'F')
                count2++;
        }
        if(count1 == 1 && count2 == 1)
            cout << "NO LOOP" << endl;
        else
        {
            if(count1 == count2)
                cout << "LOOP" << endl;
            else
                cout << "NO LOOP" << endl;
        }
    }
}

UVA - 11577 .cpp file

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    int J,Num[28],n,M,L,K;
    char str[202];

    while(scanf("%d\n",&n)==1)
    {

        while(n--)
        {
            int I[27]= {0};
            gets(str);

            L=strlen(str);
            for(J=0; J<L; J++)
            {
                if(str[J]=='a'||str[J]=='A')
                    I[0]++;
                else if(str[J]=='b'||str[J]=='B')
                    I[1]++;
                else    if(str[J]=='c'||str[J]=='C')
                    I[2]++;
                else if(str[J]=='d'||str[J]=='D')
                    I[3]++;
                else    if(str[J]=='e'||str[J]=='E')
                    I[4]++;
                else    if(str[J]=='f'||str[J]=='F')
                    I[5]++;
                else    if(str[J]=='g'||str[J]=='G')
                    I[6]++;
                else    if(str[J]=='h'||str[J]=='H')
                    I[7]++;
                else    if(str[J]=='i'||str[J]=='I')
                    I[8]++;
                else    if(str[J]=='j'||str[J]=='J')
                    I[9]++;
                else    if(str[J]=='k'||str[J]=='K')
                    I[10]++;
                else    if(str[J]=='l'||str[J]=='L')
                    I[11]++;
                else    if(str[J]=='m'||str[J]=='M')
                    I[12]++;
                else    if(str[J]=='n'||str[J]=='N')
                    I[13]++;
                else    if(str[J]=='o'||str[J]=='O')
                    I[14]++;
                else    if(str[J]=='p'||str[J]=='P')
                    I[15]++;
                else    if(str[J]=='q'||str[J]=='Q')
                    I[16]++;
                else    if(str[J]=='r'||str[J]=='R')
                    I[17]++;
                else    if(str[J]=='s'||str[J]=='S')
                    I[18]++;
                else    if(str[J]=='t'||str[J]=='T')
                    I[19]++;
                else    if(str[J]=='u'||str[J]=='U')
                    I[20]++;
                else    if(str[J]=='v'||str[J]=='V')
                    I[21]++;
                else    if(str[J]=='w'||str[J]=='W')
                    I[22]++;
                else    if(str[J]=='x'||str[J]=='X')
                    I[23]++;
                else    if(str[J]=='y'||str[J]=='Y')
                    I[24]++;
                else    if(str[J]=='z'||str[J]=='Z')
                    I[25]++;

            }
            M=0;
            for(L=200; L>=0; L--)
            {
                for(J=0; J<27; J++)
                {
                    if(I[J]==L&&M<=I[J])
                    {
                        printf("%c",J+97);
                        M=I[J];
                    }
                }
            }
            cout<<endl;
        }
    }
    return 0;
}

UVA - 11559 .cpp file

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string s;
    char ch;
    int n,b,h,w,p,x;
    while(cin>>n>>b>>h>>w)
    {
        int mn=1e9;
        for(int i=0; i<h; i++)
        {
            cin>>p;
            for(int j=0; j<w; j++)
            {
                cin>>x;
                if(x>=n)
                    mn = min(mn, n*p);
            }
        }
        if(mn>b)     cout<<"stay home\n";
        else cout<<mn<<"\n";
    }
    return 0;
}

UVA - 11554 .cpp file

#include<bits/stdc++.h>
using namespace std;
long long int i, triangles[1000001],k;
int main()
{
    triangles[3] = 0;
    for(i = 4; i < 1000001; i++)
        if(i&1) triangles[i] = (i-1)*(i-3)/4 + triangles[i-1];
        else triangles[i] = (i-2)*(i-2)/4 + triangles[i-1];
    scanf("%lld",&k);
    while(k--)
    {
        scanf("%lld",&i);
        if(i <3) break;
        printf("%lld\n",triangles[i]);
    }
    return 0;
}

UVA - 11547 .cpp file

#include<cmath>
#include<cstdio>

using namespace std;

long long t, n;

int main()
{
    scanf("%lld", &t);
    while(t--)
    {
        scanf("%lld", &n);
        n *= 567;
        n /= 9;
        n += 7492;
        n *= 235;
        n /= 47;
        n -= 498;
        n /= 10;
        printf("%d\n", (int) abs(n % 10));
    }
}