#include<bits/stdc++.h>
#define debug(x) cerr << #x << " " << x << "\n"
#define debugs(x) cerr << #x << " " << x << " "
#pragma GCC optimize("Ofast")
//#define int long long
using namespace std;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
int range_rng(int l, int r)
{
return uniform_int_distribution<int>(l,r)(rng);
}
vector<int> poz[300005];
vector<int> queries[300005];
int req[300005];
int ans[300005];
int l[300005];
int r[300005];
int a[300005];
int m;
class AIB
{
public:
unsigned long long aib[300005];
void clr()
{
int i;
for (i = 1; i <= m; i++)
{
aib[i]=0;
}
}
void update(int idx, int delta)
{
while (idx <= m)
{
aib[idx]+=delta;
idx+=idx&(-idx);
}
}
void update(int l, int r, int x)
{
if (l > r)
{
update(l,m,x);
update(1,r,x);
}
else
{
update(l,x);
update(r+1,-x);
}
}
unsigned long long query(int idx)
{
unsigned long long ans;
ans=0;
while (idx > 0)
{
ans+=aib[idx];
idx-=idx&(-idx);
}
return ans;
}
} aib;
signed main()
{
//ifstream fin("sirbun.in");
//ofstream fout("sirbun.out");
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n,k,i,j,cnt,pas;
unsigned long long score;
cin >> n >> m;
for (i = 1; i <= m; i++)
{
cin >> j;
poz[j].push_back(i);
}
for (i = 1; i <= n; i++)
{
cin >> req[i];
}
cin >> k;
for (i = 1; i <= k; i++)
{
cin >> l[i] >> r[i] >> a[i];
}
for (pas = 20; pas >= 0; pas--)
{
aib.clr();
for (i = 1; i <= n; i++)
{
if (ans[i] + (1<<pas) <= k)
queries[ans[i] + (1<<pas)].push_back(i);
}
for (i = 1; i <= k; i++)
{
aib.update(l[i],r[i],a[i]);
for (auto x : queries[i])
{
score=0;
for (auto y : poz[x])
score+=aib.query(y);
if (score < req[x])
ans[x]+=(1<<pas);
}
queries[i].clear();
}
}
for (i = 1; i <= n; i++)
{
ans[i]++;
if (ans[i] <= k)
cout << ans[i] << "\n";
else
cout << "NIE\n";
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |