MarioYC

Selectivo 3 - P8

Sep 10th, 2012
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.56 KB | None | 0 0
  1. #include <cstdio>
  2. #include <climits>
  3. #include <algorithm>
  4. #include <vector>
  5. #include <map>
  6.  
  7. using namespace std;
  8.  
  9. long long f(int k, long long n){
  10.     return (k - 2) * n * (n + 1) / 2 - (k - 3) * n;
  11. }
  12.  
  13. int main(){
  14.     int N,K[50],s;
  15.     bool first = true;
  16.     long long nxt[50];
  17.     int pos[50];
  18.    
  19.     while(true){
  20.         scanf("%d",&N);
  21.         if(N == 0) break;
  22.        
  23.         for(int i = 0;i < N;++i)
  24.             scanf("%d",&K[i]);
  25.        
  26.         scanf("%d",&s);
  27.        
  28.         if(!first) printf("\n");
  29.         first = false;
  30.        
  31.         int cont = 0;
  32.        
  33.         for(int i = 0;i < N;++i){
  34.             pos[i] = 1;
  35.             nxt[i] = f(K[i],1);
  36.         }
  37.        
  38.         while(cont < 5){
  39.             long long cur = nxt[0];
  40.            
  41.             for(int i = 1;i < N;++i)
  42.                 cur = min(cur,nxt[i]);
  43.            
  44.             int aux = 0;
  45.             vector<int> occ;
  46.            
  47.             for(int i = 0;i < N;++i){
  48.                 if(nxt[i] == cur){
  49.                     nxt[i] = f(K[i],++pos[i]);
  50.                     occ.push_back(K[i]);
  51.                     ++aux;
  52.                 }
  53.             }
  54.            
  55.             if(aux >= 2 && cur >= s){
  56.                 printf("%lld:",cur);
  57.                
  58.                 for(int i = 0;i < aux;++i){
  59.                     if(i > 0) putchar(' ');
  60.                     printf("%d",occ[i]);
  61.                 }
  62.                
  63.                 printf("\n");
  64.                
  65.                 ++cont;
  66.             }
  67.         }
  68.     }
  69.    
  70.     return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment