2015年5月25日 星期一

[UVA] 10057 - A mid-summer night's dream.

/*20150525 hanting*/
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
    int N;
    while(cin>>N)
    {
        int arr[N];
        for(int i=0;i<N;i++)
        {
            cin>>arr[i];
        }
        sort(arr,arr+N);
        int A1=arr[(N-1)/2] , A2=arr[(N-1)/2+1];
        int Count=0,possibleA;
        if(N&1)
        {
            for(int i=0;i<N && arr[i]<=A2;i++)
            {
                Count+=(arr[i]==A1);
            }
            possibleA=1;
        }
        else
        {
            for(int i=0;i<N && arr[i]<=A2;i++)
            {
                Count+=(arr[i]==A1||arr[i]==A2);
            }
            possibleA=A2-A1+1;
        }
        cout<<A1<<" "<<Count<<" "<<possibleA<<endl;
    }
    return 0;
}

2015年5月23日 星期六

[UVA] 10474 - Where is the Marble?

/*20150523 hanting*/
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
    int N,Q;
    int Case=1;
    while(cin>>N>>Q && N+Q)
    {
        vector<int> vec;
        for(int i=0;i<N;i++)
        {
            int temp;
            cin>>temp;
            vec.push_back(temp);
        }
        sort(vec.begin(),vec.end());
        cout<<"CASE# "<<Case++<<":"<<endl;
        for(int i=0;i<Q;i++)
        {
            int temp;
            cin>>temp;
            vector<int>::iterator it=find(vec.begin(),vec.end(),temp);
            if(it!=vec.end())
            {
                cout<<temp<<" found at "<<it-vec.begin()+1<<endl;
            }
            else
            {
                cout<<temp<<" not found"<<endl;
            }
        }
    }
    return 0;
}

[UVA] 11063 - B2-Sequence

/*20150523 hanting*/
#include <iostream>
using namespace std;
int main()
{
    int N;
    int times=1;
    while(cin>>N)
    {
        bool B2=true;
        bool Num[20002]={false};
        int arr[N];
        int temp;
        for(int i=0;i<N;i++)
        {
            cin>>arr[i];
            if(arr[i]<1) B2=false;
            else if(i!=0 && arr[i]<=temp) B2=false;
            temp=arr[i];
        }
        for(int i=0;i<N && B2;i++)
        {
            for(int j=i;j<N && B2;j++)
            {
                int sum=arr[i]+arr[j];
                if(Num[sum]==false) Num[sum]=true;
                else B2=false;
            }
        }
        cout<<"Case #"<<times++<<": ";
        if(B2) cout<<"It is a B2-Sequence."<<endl;
        else cout<<"It is not a B2-Sequence."<<endl;
        cout<<endl;
    }
    return 0;
}

2015年5月21日 星期四

[UVA] 10409 - Die Game

/*20150521 hanting*/
#include <iostream>
using namespace std;
void change(int* arr,int a,int b,int c,int d)//a << b << c << d << a ...
{
    int temp=arr[a];
    arr[a]=arr[b];
    arr[b]=arr[c];
    arr[c]=arr[d];
    arr[d]=temp;
}
int main()
{
    int N;
    while(cin>>N && N)
    {
        string cmd[N];
        for(int i=0;i<N;i++)
        {
            cin>>cmd[i];
        }
        int arr[6]={1,2,3,5,4,6};//上北西南東下
        for(int i=0;i<N;i++)
        {
            if(cmd[i]=="north")
            {
                change(arr,0,3,5,1);
            }
            else if(cmd[i]=="south")
            {
                change(arr,0,1,5,3);
            }
            else if(cmd[i]=="east")
            {
                change(arr,0,2,5,4);
            }
            else
            {
                change(arr,0,4,5,2);
            }
        }
        cout<<arr[0]<<endl;
    }
    return 0;
}