Cod sursa(job #401071)

Utilizator perticas_catalinperticas catalin perticas_catalin Data 22 februarie 2010 13:05:47
Problema Multimi2 Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.53 kb
#include<iostream>
#include<string>

using namespace std;

int N;

char colour[1000005];

int main()
{
    int is,id,NR1,NR2;
    
    freopen("multimi2.in","r",stdin);
    freopen("multimi2.out","w",stdout);
    
    scanf("%d",&N);
    
    if(N%4==0)
    {
         NR1=NR2=N/2;
         
         is=1,id=N;
         
         while(is<id)
         {
            colour[is]=0;
            colour[id]=0; 
            is+=2;
            id-=2;
         }     
         
         is=2,id=N-1;
         
         while(is<id)
         {
             colour[is]=1;
             colour[id]=1;
             
             is+=2;
             id-=2;
         }
    }
    else
    if(N%4==3)
    {
         NR1=N/2+1;
         NR2=N/2;
         
         is=1,id=N-1;
         
         while(is<id) 
         {
             colour[is]=0;
             colour[id]=0;           
                        
             is+=2;
             id-=2;              
         }     
         
         is=2,id=N-2;
         
         while(is<id)
         {
            colour[is]=1;
            colour[id]=1;
            
            is+=2;
            id-=2;
         }
         
         colour[N]=1;
    }
    
    printf("%d\n",NR1-NR2);
    
    printf("%d\n",NR1);
    
    for(int i=1;i<=N;++i)
       if(!colour[i]) printf("%d ",i);
    
    printf("\n");
    
    printf("%d\n",NR2);   
       
    for(int i=1;i<=N;++i)
       if(colour[i]) printf("%d ",i);   
    
    return 0;
}