1 / 2
Feb 2012

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
int t,i;
scanf("%d",&t);
int sum=1;
char str[4];
int arr[t];
for(i=0;i<t;i++)
{
        scanf("%s",str);
        if(str[0]=='1'&&str[2]=='4')
                arr[i]=1;
        else
        if(str[0]=='1'&&str[2]=='2')
                arr[i]=2;
        else
        if(str[0]=='3'&&str[2]=='4')
                arr[i]=3;
}
sort(arr,arr+t);
int thalf=0,tquad=0;
for(i=t;i>=0;i--)
{
        if(arr[i]==3)
                sum++;
        if(arr[i]==2)
                thalf++;
        if(arr[i]==1)
                tquad++;
}
if(thalf%2==0&&thalf!=0)
{
        sum=sum+(thalf/2);
        thalf=0;
}
if(thalf%2!=0&&thalf!=0)
{
        sum=sum+((thalf-1)/2);
        thalf=1;
}
if(tquad%4==0&&tquad!=0)
{
        sum=sum+(tquad/4);
        tquad=0;
}
if(tquad%4!=0&&tquad!=0)
{
        sum=sum+((tquad)/4);
        tquad=tquad%4;
}
if((thalf==1&&tquad==2)||(thalf==1&&tquad==0)||(thalf==1&&tquad==1)||(thalf==0&&tquad==1)||(thalf==0&&tquad==3)||(thalf==0&&tquad==2))
        sum=sum+1;
if(thalf==1&&tquad==3)
        sum=sum+2;
printf("%d\n",sum);
return 0;
}

i have tested my code. for more than 50 testcases !! please help ??? WHERE THE HELL I AM WRONG ???

  • created

    Feb '12
  • last reply

    Mar '12
  • 1

    reply

  • 287

    views

  • 2

    users