Submission #1175414

#TimeUsernameProblemLanguageResultExecution timeMemory
1175414iulia_morariuRace (IOI11_race)C++20
9 / 100
13 ms1604 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <climits>
#include <cmath>
#include <map>
#include "race.h"
//#include <bits/stdc++.h>
#define in  cin
#define out cout

using namespace std;

int best_path(int N, int K, int H[][2], int L[]){
    bool s1 = 1;
    for(int i = 0; i < N - 1; i++){
        if(H[i][0] + 1 != H[i][1] && H[i][0] - 1 != H[i][1]) s1 = 0;
    }

    if(s1){
        // cout << "facem suma K = " << K << '\n';
        map<int, int> mp;
        int sum = 0;
        mp[sum] = 0;
        int lmin = N + 29;
        for(int i = 1; i <= N - 1; i++){
            sum += L[i - 1];
            // cout << "suntem la i = " << i << " sum = " << sum << " am gasim " << sum - K << " ? : " << (mp.find(sum - K) == mp.end()? "da" : "nu") << '\n';
            if(mp.find( sum - K ) != mp.end()) lmin = min(lmin, i - mp[ sum - K ]);
            mp[sum] = i;
            // cout << "Add mp[sum] = " << mp[sum] << '\n';
        }
        if(lmin == N + 29) return -1;
        else return lmin;
    }

    return -1;
}

// signed main(){
//     ios_base::sync_with_stdio(false);
//     cin.tie(NULL);

//     int H[][2] = { {0, 1}, {1, 2} };
//     int L[] = {1, 1};

//     out << best_path(3, 3, H, L) << '\n';

//     return 0;
// }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...