Cod sursa(job #2970941)

Utilizator AlexNicuNicu Alexandru AlexNicu Data 26 ianuarie 2023 10:40:57
Problema Inundatii Scor 0
Compilator cpp-64 Status done
Runda sa_fac_schema Marime 1.04 kb
#include <fstream>

using namespace std;

ifstream cin ("inundatii.in");
ofstream cout ("inundatii.out");

#define NMAX 50005

int cladiri[NMAX][3];
int ans[NMAX][3];

int main() {
    int n, j, i;
    cin >> n;
    for ( i = 1; i <= n; i++ ) {
        cin >> cladiri[i][0] >> cladiri[i][1] >> cladiri[i][2];
    }
    for ( j = 0; j < 3; j++ ) {
        for ( i = 1; i <= n; i++ ) {
            ans[i][j] = cladiri[i][j];
            if ( i >= 2 && ans[i][j] <= ans[i - 1][j] ) {
                if ( i >= 3 && (cladiri[i][j] + cladiri[i - 1][j]) / 2 <= ans[i - 2][j] ) {
                    ans[i - 1][j] = ans[i - 2][j] + 1;
                } else {
                    ans[i - 1][j] = (cladiri[i][j] + cladiri[i - 1][j]) / 2;
                }
                ans[i][j] = ans[i - 1][j] + 1;
            }
        }
    }
    int answer = 0;
    for ( j = 0; j < 3; j++ ) {
        for ( i = 1; i <= n; i++ ) {
          answer = answer + abs( cladiri[i][j] - ans[i][j] );
        }
    }
    cout << answer;
    return 0;
}