damihenrique

Untitled

Jan 27th, 2015
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.36 KB | None | 0 0
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <stdio.h>
  4. #include <cstring>
  5. #include <vector>
  6. #include <algorithm>
  7. #include <utility>
  8. #include <queue>
  9. #include <map>
  10. #include <stack>
  11. #include <cmath>
  12. #include <set>
  13. #include <ctype.h>
  14. #include <bitset>
  15.  
  16. #define INF 0x3F3F3F3F
  17. #define rep(i, a, b) for (int i = int(a); i < int(b); i++)
  18. #define pb push_back
  19. #define clr(a) memset((a),0,sizeof(a))
  20. #define pi 3.1415926535897932384626433832795028841971
  21. #define debug(x) cout << #x << " = " << x << endl;
  22. #define debug2(x,y) cout << #x << " = " << x << " --- " << #y << " " << y << "\n";
  23. #define all(S) (S).begin(), (S).end()
  24. #define MAXV 1005
  25. #define F first
  26. #define S second
  27. #define EPS 1e-9
  28. #define mp make_pair
  29.  
  30. // freopen("in.txt", "r", stdin);
  31. // freopen("out.txt", "w", stdout);
  32.  
  33. using namespace std;
  34.  
  35. typedef long long ll;
  36. typedef pair < int, int >  ii;
  37. typedef vector < int >  vi;
  38. typedef vector < ii >  vii;
  39.  
  40. int n;
  41. int posto[1002];
  42. int gasta[1002];
  43.  
  44. bool horario(int start){
  45.    
  46.     int cnt = 0;
  47.     int atual = start;
  48.     int qtd = 0;
  49.    
  50.     while(cnt != n){
  51.        
  52.         qtd += posto[atual];
  53.         qtd -= gasta[atual];
  54.        
  55.         if(qtd < 0) return false;
  56.        
  57.         atual++;  
  58.         if(atual > n) atual = 1;
  59.         cnt++;
  60.     }
  61.    
  62.     return true;
  63. }
  64.  
  65.  
  66. bool ant(int start){
  67.    
  68.     int cnt = 0;
  69.     int atual = start;
  70.     int qtd = 0;
  71.    
  72.     while(cnt != n){
  73.        
  74.         qtd += posto[atual];
  75.         int next = atual - 1;
  76.         if(next == 0) next = n;
  77.         qtd -= gasta[next];
  78.        
  79.         if(qtd < 0) return false;
  80.        
  81.         atual--;  
  82.         if(atual == 0) atual = n;
  83.         cnt++;
  84.     }
  85.    
  86.     return true;
  87. }
  88.  
  89. int main(){
  90.    
  91.     int ansH, ansA;
  92.    
  93.     while(scanf("%d",&n) && n){
  94.        
  95.         rep(i,1,n+1)
  96.             scanf("%d",&posto[i]);
  97.         rep(i,1,n+1)
  98.             scanf("%d",&gasta[i]);
  99.        
  100.         ansH = ansA = -1;
  101.        
  102.         rep(i,1,n+1){
  103.             bool ok = horario(i);
  104.             if(ok){
  105.                 ansH = i;
  106.                 break;  
  107.             }  
  108.         }
  109.        
  110.         rep(i,1,n+1){
  111.             bool ok = ant(i);
  112.             if(ok){
  113.                 ansA = i;
  114.                 break;  
  115.             }  
  116.         }
  117.        
  118.         printf("%d %d\n",ansH,ansA);
  119.     }
  120.  
  121.     return 0;
  122. }
Advertisement
Add Comment
Please, Sign In to add comment