답안 #480240

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
480240 2021-10-15T10:48:18 Z FEDIKUS Meteors (POI11_met) C++17
74 / 100
1236 ms 65540 KB
#include <bits/stdc++.h>
#define mp make_pair
#define pb push_back
#define pf push_front
#define popb pop_back
#define popf pop_front
#define xx first
#define yy second
#define ff(i,s,f) for(ll i=s;i<f;i++)
#define fb(i,s,f) for(ll i=(s)-1;i>=f;i--)
#define ffi(i,s,f) for(ll i=s;i<=f;i++)
#define fbi(i,s,f) for(ll i=s;i>=f;i--)
#define srt(a) sort(a.begin(),a.end());
#define srtg(a,ll) sort(a.begin(),a.end(),greater<ll>())
#define lb(a,x) lower_bound(a.begin(),a.end(),x)
#define ub(a,x) upper_bound(a.begin(),a.end(),x)
#define fnd(a,x) find(a.begin(),a.end(),x)
#define vstart auto startt=chrono::system_clock::now()
#define vend auto endd=chrono::system_clock::now()
#define vvreme chrono::duration<double> vremee=endd-startt
#define ios ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0)

using namespace std;

typedef long long ll;
typedef pair<ll,ll> pii;
typedef pair<ll,ll> pll;
typedef string str;

const ll maxn=3e5+10;

vector<ll> s[maxn];
ll p[maxn];
vector<ll> buckets[maxn];
ll res[maxn];
ll l[maxn];
ll r[maxn];
ll mid[maxn];
ll bit[maxn];
pair<pii,ll> ev[maxn];

void add(ll x,ll k,ll siz){
    for(;x<=siz;x+=x&-x) bit[x]+=k;
}

ll query(ll x){
    ll ret=0;
    for(;x>0;x-=x&-x) ret+=bit[x];
    return ret;
}

void solve(){
	ll n,m; cin>>n>>m;
	ff(i,0,m){
        ll a; cin>>a;
        s[a].pb(i+1);
	}
	ffi(i,1,n) cin>>p[i];
	ll k; cin>>k;
	ffi(i,1,k) cin>>ev[i].xx.xx>>ev[i].xx.yy>>ev[i].yy;
	ffi(i,1,n) l[i]=1;
	ffi(i,1,n) r[i]=k;
	ffi(i,1,n) res[i]=-1;
	bool change=true;
    while(change){
        change=false;
        ffi(i,1,k) buckets[i].clear();
        ffi(i,1,n) if(l[i]<=r[i]) change=true;
        ffi(i,1,n) mid[i]=l[i]+(r[i]-l[i])/2;
        ffi(i,1,n) if(l[i]<=r[i]) buckets[mid[i]].pb(i);
        fill(bit,bit+m+1,0);
        ffi(i,1,k){
            if(ev[i].xx.xx<=ev[i].xx.yy){
                add(ev[i].xx.xx,ev[i].yy,m);
                add(ev[i].xx.yy+1,-ev[i].yy,m);
            }else{
                add(1,ev[i].yy,m);
                add(ev[i].xx.yy+1,-ev[i].yy,m);
                add(ev[i].xx.xx,ev[i].yy,m);
            }
            for(ll j:buckets[i]){
                ll tren=0;
                for(ll t:s[j]){
                    tren+=query(t);
                    if(tren>=p[j]) break;
                }
                if(tren>=p[j]){
                    res[j]=mid[j];
                    r[j]=mid[j]-1;
                }else l[j]=mid[j]+1;
            }
        }
    }
    ffi(i,1,n)
        if(res[i]!=-1) cout<<res[i]<<"\n";
        else cout<<"NIE\n";
}

int main(){
    ios;
    ll t=1;
    //cin>>t;
    while(t--) solve();
    return 0;
}

# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 14412 KB Output is correct
2 Correct 11 ms 14540 KB Output is correct
3 Correct 10 ms 14500 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 11 ms 14556 KB Output is correct
2 Correct 10 ms 14540 KB Output is correct
3 Correct 11 ms 14632 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 71 ms 17508 KB Output is correct
2 Correct 130 ms 21216 KB Output is correct
3 Correct 106 ms 19780 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 114 ms 19012 KB Output is correct
2 Correct 107 ms 19024 KB Output is correct
3 Correct 124 ms 21496 KB Output is correct
4 Correct 41 ms 18268 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 89 ms 17972 KB Output is correct
2 Correct 108 ms 21720 KB Output is correct
3 Correct 52 ms 15708 KB Output is correct
4 Correct 110 ms 20552 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 95 ms 16568 KB Output is correct
2 Correct 107 ms 19008 KB Output is correct
3 Correct 80 ms 17108 KB Output is correct
4 Correct 128 ms 22724 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1235 ms 49504 KB Output is correct
2 Correct 723 ms 26444 KB Output is correct
3 Correct 243 ms 22852 KB Output is correct
4 Runtime error 1236 ms 65540 KB Execution killed with signal 9
# 결과 실행 시간 메모리 Grader output
1 Correct 1223 ms 46996 KB Output is correct
2 Correct 815 ms 26332 KB Output is correct
3 Correct 208 ms 22664 KB Output is correct
4 Runtime error 1119 ms 65540 KB Execution killed with signal 9