Submission #852384

# Submission time Handle Problem Language Result Execution time Memory
852384 2023-09-21T17:33:32 Z alexdd Restore Array (RMI19_restore) C++17
0 / 100
7 ms 856 KB
#include<bits/stdc++.h>
using namespace std;
int cnt0[5005];
vector<pair<int,int>> con[5005];
int n,m;
void calc_cnt0()
{
    deque<int> dq;
    dq.push_back(0);
    while(!dq.empty())
    {
        int nod = dq.front();
        dq.pop_front();
        for(auto x:con[nod])
        {
            int adj = x.first;
            if(cnt0[adj] < cnt0[nod] + x.second && adj!=0)
            {
                cnt0[adj] = cnt0[nod] + x.second;
                dq.push_back(adj);
            }
        }
    }
}
signed main()
{
    ios_base::sync_with_stdio(0);cin.tie(0);
    cin>>n>>m;
    int l,r,k,val;
    for(int i=0;i<m;i++)
    {
        cin>>l>>r>>k>>val;
        l++;
        r++;
        if(val==0)
        {
            con[l-1].push_back({r,k});
        }
        else
        {
            con[r].push_back({l-1,-k});
        }
    }
    for(int i=1;i<=n;i++)
    {
        con[i].push_back({i-1,-1});
        con[i-1].push_back({i,0});
    }
    calc_cnt0();
    for(int i=0;i<=n;i++)
    {
        for(auto x:con[i])
        {
            if(cnt0[x.first] < cnt0[i] + x.second)
            {
                cout<<-1;
                return 0;
            }
        }
    }
    for(int i=1;i<=n;i++)
    {
        if(cnt0[i]==cnt0[i-1])
            cout<<1<<" ";
        else
            cout<<0<<" ";
    }
    return 0;
}
/**

restrictia l,r,k,0:
cnt0[r] - cnt0[l-1] >= k

cnt0[r] >= k + cnt0[l-1] *******

cnt0[l-1] <= cnt0[r] - k

restrictia l,r,k,1:
cnt0[r] - cnt0[l-1] <= k
cnt0[r] <= k + cnt0[l-1]

cnt0[l-1] >= cnt0[r] - k *****

cnt0[i-1] >= cnt0[i] - 1

cnt0[i] >= cnt0[i-1] + 0

avem doar restrictii dinastea




*/
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
2 Incorrect 0 ms 348 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 7 ms 856 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 7 ms 856 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
2 Incorrect 0 ms 348 KB Output isn't correct
3 Halted 0 ms 0 KB -