Advertisement
Guest User

Untitled

a guest
May 23rd, 2015
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.38 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define lli long long int
  3. #define gc getchar
  4. #define sc scanint
  5. #define FL(i,a,b) for(lli i=a;i<b;i++)
  6. #define t9 1000000007
  7. lli mod(lli a,lli b){
  8.   return a-b*(a/b);
  9. }  
  10. lli po(lli a, lli b,lli MOD=t9)
  11. {
  12.     lli x=1,y=a;
  13.     while(b > 0)
  14.     {
  15.         if(b%2 == 1)
  16.         {
  17.             x=(x*y);
  18.             if(x>MOD) x=mod(x,MOD);
  19.         }
  20.         y = (y*y);
  21.         if(y>MOD) y=mod(y,MOD);
  22.         b /= 2;
  23.     }
  24.     return x;
  25. }
  26.  
  27. void scanint(lli &x)
  28. {
  29.     register lli c = gc();
  30.     x = 0;
  31.     for(;(c<48 || c>57);c = gc());
  32.     for(;c>47 && c<58;c = gc())  
  33.         {x = (x<<1) + (x<<3) + c - 48;}
  34. }
  35. using namespace std;
  36.  
  37. int main() {
  38.     // your code goes here
  39.     lli t;
  40.     sc(t);
  41.     while(t--){
  42.         lli n;
  43.         sc(n);
  44.         lli a[51];int sum=0;int max=-5;int c0=0,c1=0,count=0;
  45.         FL(i,0,n){
  46.             sc(a[i]);
  47.             sum=sum+a[i];
  48.             if(a[i]>max) max=a[i];
  49.             if(a[i]==0) c0++;
  50.             else if(a[i]==1) c1++;
  51.         }
  52.         if(sum!=n) printf("-1\n");
  53.         else if(max==n) printf("-1\n");
  54.         else if(c0>n-2) printf("-1\n");
  55.     //  else if(c1==n){
  56.     //      FL(i,2,n+1) printf("%lld ",i);
  57.     //      printf("1\n");
  58.     //  }
  59.         else{
  60.             lli flag=1;lli p=0,q=1;
  61.             while(flag){
  62.                 if(a[q]!=0){
  63.                     printf("%lld ",q+1);
  64.                     a[q]--;
  65.                     p++;
  66.                     q=p+1;
  67.                     count=0;
  68.                    
  69.                 }
  70.                 else{
  71.                     q++;
  72.                     count++;
  73.                 }
  74.                 if(count>n+10) break;
  75.                 if(q>=n) q=0;
  76.                 if(p>=n) p=0;
  77.                
  78.             }
  79.             printf("\n");
  80.         }
  81.        
  82.     }
  83.     return 0;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement