Advertisement
Guest User

Untitled

a guest
Sep 16th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.54 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <assert.h>
  3. #include <iostream>
  4. #include <map>
  5. #include <stdlib.h>
  6. #define MAXN 100000
  7. using namespace std;
  8.  
  9. int ricarica(int N, int M, int A[], int B[]) {
  10.  
  11.     int carica = 1;
  12.     int necessari = 1;
  13.     int ultima_posizione = 1;
  14.     for (int i = 0; i < N; i++) {
  15.         int inizio = A[i];
  16.         int fine = B[i];
  17.  
  18.         //cout << "Punti in " << ultima_posizione << " = " << carica << endl;
  19.         int costo = inizio - ultima_posizione;
  20.         //cout << "Costo per spostarsi da " << ultima_posizione << " a " << inizio << " = " << costo << " punti" << endl;
  21.  
  22.         int da_aggiungere = 0;
  23.         if (costo >= carica) {
  24.             da_aggiungere = costo - carica + 1;
  25.             necessari += da_aggiungere;
  26.             carica -= da_aggiungere;
  27. //            cout << "Servono altri " << da_aggiungere << " punti" << endl;
  28.  
  29.         }
  30.  
  31.         int valore = fine-inizio+1;
  32.  
  33.         carica += valore;
  34.         //cout << "Ricarica di " << valore << " punti, carica = " << carica << endl;
  35.  
  36.         ultima_posizione = fine + 1;
  37.         //system("pause");
  38.     }
  39.  
  40.     //cout << necessari << endl;
  41.     return necessari;
  42.  
  43. }
  44.  
  45.  
  46.  
  47. int A[MAXN], B[MAXN];
  48.  
  49. int main() {
  50.     FILE *fr, *fw;
  51.     int N, M, i;
  52.  
  53.     fr = fopen("input.txt", "r");
  54.     fw = fopen("output.txt", "w");
  55.     assert(2 == fscanf(fr, "%d %d", &N, &M));
  56.     for(i=0; i<N; i++)
  57.         assert(2 == fscanf(fr, "%d %d", &A[i], &B[i]));
  58.  
  59.     fprintf(fw, "%d\n", ricarica(N, M, A, B));
  60.     fclose(fr);
  61.     fclose(fw);
  62.     return 0;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement