Advertisement
Alx09

TP ex

May 21st, 2020
1,339
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.28 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main() {
  5.     FILE *f;
  6.     int N, P, v[10001], i, apaPosibila = 0;
  7.     f = fopen("inundatie.txt", "r");
  8.     fscanf(f, "%d%d", &N, &P);
  9.     for (i = 1; i <=  N; i++)
  10.         fscanf(f, "%d", &v[i]);
  11.     fclose(f);
  12.     f = fopen("apa.txt", "w");
  13.     if (v[1] > P)
  14.         v[1] -= P;
  15.     else {
  16.         apaPosibila = P - v[1];
  17.         v[1] = 0;
  18.     }
  19.  
  20.  
  21.     for (i = 2; i < N; i++)
  22.     {    
  23.         if (v[i] > P) {
  24.             v[i] -= P;
  25.             if (apaPosibila > v[i]) {
  26.                 apaPosibila -= v[i];
  27.                 v[i] = 0;
  28.             }
  29.             else {
  30.                 v[i] -= apaPosibila;
  31.                 apaPosibila = 0;
  32.             }
  33.         }
  34.         else {
  35.             apaPosibila = P - v[i];
  36.             v[i] = 0;
  37.             if (v[i - 1]) {
  38.                 if (apaPosibila > v[i - 1]) {
  39.                     apaPosibila -= v[i-1];
  40.                     v[i - 1] = 0;
  41.                 }
  42.                 else {
  43.                     v[i - 1] -= apaPosibila ;
  44.                     apaPosibila = 0;
  45.                 }
  46.             }
  47.         }
  48.            
  49.     }
  50.  
  51.     if (v[N] > P) {
  52.         v[N] -= P;
  53.  
  54.         if (apaPosibila > v[N]) {
  55.             apaPosibila -= v[N];
  56.             v[N] = 0;
  57.             if (apaPosibila > v[N - 1]) {
  58.                 v[N - 1] = 0;
  59.             }
  60.             else
  61.             {
  62.                 v[N - 1] -= apaPosibila;
  63.             }
  64.         }
  65.         else
  66.             v[N] -= apaPosibila;
  67.     }
  68.     else
  69.     {
  70.         v[N - 1] = P - v[N];
  71.         v[N] = 0;
  72.     }
  73.     apaPosibila = 0;
  74.     for (i = 1; i <= N; i++)
  75.         apaPosibila += v[i];
  76.     fprintf(f, "%d\n", apaPosibila);
  77.     for (i = 1; i <= N; i++)
  78.         fprintf(f, "%d ", v[i]);
  79.     return 0;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement