Submission #3618226


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

   typedef long long ll;
   typedef pair<ll, ll> P;

   const double EPS = (1e-7);
   const ll INF =(1e13);
   const double PI = (acos(-1));
   const ll MOD = ll(1e9) + 7;

   #define REP(i, n) for(ll i = 0; i < (ll)(n); i++)
   #define REPR(i, n) for(ll i = n; i > -1; i--)
   #define FOR(i, a, b) for (ll i = (ll)(a); i < (ll)(b); i++)
   #define ALL(x) (x).begin(),(x).end()
   #define SORT(x) sort((x).begin(), (x).end())
   #define REVERSE(x) reverse((x).begin(), (x).end())
   #define SZ(x) ((ll)(x).size())
   #define pb push_back
   #define mp make_pair

   //chmax(a, b): a>bならaをbで更新 更新したときにtrueを返す
   //chmin(a, b): a<bならaをbで更新 更新したときにtrueを返す
   template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
   template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return 1; } return 0; }

   #define dump(x) cerr<< #x << "= " << (x) << endl;

   int gcd(int a,int b){return b?gcd(b,a%b):a;};

   int dx[4]={1,0,-1,0};
   int dy[4]={0,1,0,-1};

class BIT{
    //1-index, A1, A2, ..., A_Mの更新および累積和をO(logM)で求める.
    //2分探索もできる.
    public:
        vector<ll> bit;
        ll M;

    BIT(ll M):
        //宣言と初期化
        bit(vector<ll>(M+1, 0)), M(M) {}

    ll sum(ll i) {
        if (!i) return 0;
        return bit[i] + sum(i-(i&-i));
    }
    void add(ll i, ll x) {
        if (i > M) return;
        bit[i] += x;
        add(i+(i&-i), x);
    }
    ll lower_bound(ll x){
        //普通のlower_boundと同じ


        //解の範囲は(l, r]
        //sum(m) < x -> (m, r]
        //sum(m) >=x -> (l, m]
        ll l = 0, r = M + 1;
        while (r - l > 1){
            ll m = (l + r) / 2;
            if (sum(m) < x) l = m;
            else r = m;
        }
        return r;
    }
    ll upper_bound(ll x){
        //普通のupper_boundと同じ
        //解の範囲は(l, r]
        //sum(m) > x -> (l, m]
        //sum(m) <=x -> (m, r]

        ll l = 0, r = M + 1;
        while (r - l > 1){
            ll m = (l + r) / 2;
            if (sum(m) > x) r = m;
            else l = m;
        }
        return r;
    }
};

const ll MAX_N = 1e5, MAX_M = 1e5, MAX_H = 1e5;
ll N, M, H;
ll a[MAX_M + MAX_N] = {};
bool opr[MAX_M];
ll b[MAX_M];

int main(){
    cin >> N >> M >> H;
    BIT s(N + M);
    REP(i, N) {
        cin >> a[i];
        s.add(i + 1, a[i]);
    }
    REP(i, M){
        string op; cin >> op;
        (op == "add") ? opr[i] = 0 : opr[i] = 1;
        cin >> b[i];
    }
    REP(i, M){
        if (!opr[i]){
            s.add(i + N + 1, b[i]); 
        }
        else{
            ll lb = s.upper_bound(b[i] - H);
            ll ub = s.lower_bound(b[i] + H);
            if (lb == N + M + 1){
                cout << "miss" << endl;
            }
            else if (s.sum(ub) - s.sum(lb) == 0){
                cout << "go" << endl;
                ll t = s.sum(lb) - s.sum(lb - 1);
                s.add(lb, -t);
            }
            else {
                cout << "stop" << endl;
            }
        }
    }
}

Submission Info

Submission Time
Task G - だるま落とし
User genkinanodesu
Language C++14 (GCC 5.4.1)
Score 0
Code Size 3286 Byte
Status WA
Exec Time 333 ms
Memory 3840 KB

Judge Result

Set Name small large
Score / Max Score 0 / 20 0 / 80
Status
AC × 17
WA × 19
AC × 47
WA × 19
Set Name Test Cases
small small/case_000.txt, small/case_002.txt, small/case_003.txt, small/case_005.txt, small/case_006.txt, small/case_007.txt, small/case_008.txt, small/case_009.txt, small/case_010.txt, small/case_011.txt, small/case_012.txt, small/case_013.txt, small/case_014.txt, small/case_015.txt, small/case_016.txt, small/case_017.txt, small/case_018.txt, small/case_019.txt, small/case_020.txt, small/case_021.txt, small/case_022.txt, small/case_023.txt, small/case_024.txt, small/case_025.txt, small/case_026.txt, small/case_027.txt, small/case_028.txt, small/case_029.txt, small/case_030.txt, small/case_031.txt, small/case_032.txt, small/case_033.txt, small/case_034.txt, small/case_035.txt, small/case_036.txt, small/case_037.txt
large large/case_000.txt, large/case_002.txt, large/case_003.txt, large/case_005.txt, large/case_006.txt, large/case_007.txt, large/case_008.txt, large/case_009.txt, large/case_010.txt, large/case_011.txt, large/case_012.txt, large/case_013.txt, large/case_014.txt, large/case_015.txt, large/case_016.txt, large/case_017.txt, large/case_018.txt, large/case_019.txt, large/case_020.txt, large/case_021.txt, large/case_022.txt, large/case_023.txt, large/case_024.txt, large/case_025.txt, large/case_026.txt, large/case_027.txt, large/case_028.txt, large/case_029.txt, large/case_030.txt, large/case_031.txt, large/case_032.txt, large/case_033.txt, large/case_034.txt, large/case_035.txt, large/case_036.txt, large/case_037.txt, large/large_case_000.txt, large/large_case_001.txt, large/large_case_002.txt, large/large_case_003.txt, large/large_case_004.txt, large/large_case_005.txt, large/large_case_006.txt, large/large_case_007.txt, large/large_case_008.txt, large/large_case_009.txt, large/large_case_010.txt, large/large_case_011.txt, large/large_case_012.txt, large/large_case_013.txt, large/large_case_014.txt, large/large_case_015.txt, large/large_case_016.txt, large/large_case_017.txt, large/large_case_018.txt, large/large_case_019.txt, large/large_case_020.txt, large/large_case_021.txt, large/large_case_022.txt, large/large_case_023.txt, large/large_case_024.txt, large/large_case_025.txt, large/large_case_026.txt, large/large_case_027.txt, large/large_case_028.txt, large/large_case_029.txt
Case Name Status Exec Time Memory
large/case_000.txt AC 1 ms 256 KB
large/case_002.txt AC 1 ms 256 KB
large/case_003.txt WA 1 ms 256 KB
large/case_005.txt AC 1 ms 256 KB
large/case_006.txt WA 1 ms 256 KB
large/case_007.txt AC 1 ms 256 KB
large/case_008.txt AC 3 ms 256 KB
large/case_009.txt AC 3 ms 256 KB
large/case_010.txt AC 3 ms 256 KB
large/case_011.txt AC 3 ms 256 KB
large/case_012.txt WA 3 ms 256 KB
large/case_013.txt AC 3 ms 256 KB
large/case_014.txt AC 3 ms 256 KB
large/case_015.txt AC 3 ms 256 KB
large/case_016.txt AC 3 ms 256 KB
large/case_017.txt AC 3 ms 256 KB
large/case_018.txt AC 2 ms 256 KB
large/case_019.txt AC 3 ms 256 KB
large/case_020.txt AC 3 ms 256 KB
large/case_021.txt AC 3 ms 256 KB
large/case_022.txt WA 4 ms 256 KB
large/case_023.txt WA 4 ms 256 KB
large/case_024.txt WA 4 ms 256 KB
large/case_025.txt WA 4 ms 256 KB
large/case_026.txt WA 4 ms 256 KB
large/case_027.txt WA 4 ms 256 KB
large/case_028.txt WA 4 ms 256 KB
large/case_029.txt WA 4 ms 256 KB
large/case_030.txt WA 4 ms 256 KB
large/case_031.txt WA 4 ms 256 KB
large/case_032.txt WA 4 ms 256 KB
large/case_033.txt WA 4 ms 256 KB
large/case_034.txt WA 4 ms 256 KB
large/case_035.txt WA 4 ms 256 KB
large/case_036.txt WA 4 ms 256 KB
large/case_037.txt WA 4 ms 256 KB
large/large_case_000.txt AC 236 ms 3712 KB
large/large_case_001.txt AC 237 ms 3584 KB
large/large_case_002.txt AC 239 ms 3712 KB
large/large_case_003.txt AC 247 ms 3584 KB
large/large_case_004.txt AC 238 ms 3584 KB
large/large_case_005.txt AC 333 ms 3584 KB
large/large_case_006.txt AC 232 ms 3584 KB
large/large_case_007.txt AC 238 ms 3584 KB
large/large_case_008.txt AC 236 ms 3584 KB
large/large_case_009.txt AC 241 ms 3712 KB
large/large_case_010.txt AC 112 ms 3456 KB
large/large_case_011.txt AC 223 ms 3584 KB
large/large_case_012.txt AC 238 ms 3712 KB
large/large_case_013.txt AC 245 ms 3584 KB
large/large_case_014.txt AC 276 ms 3840 KB
large/large_case_015.txt AC 276 ms 3712 KB
large/large_case_016.txt AC 274 ms 3712 KB
large/large_case_017.txt AC 274 ms 3712 KB
large/large_case_018.txt AC 276 ms 3712 KB
large/large_case_019.txt AC 275 ms 3712 KB
large/large_case_020.txt AC 276 ms 3712 KB
large/large_case_021.txt AC 276 ms 3712 KB
large/large_case_022.txt AC 275 ms 3712 KB
large/large_case_023.txt AC 276 ms 3712 KB
large/large_case_024.txt AC 273 ms 3712 KB
large/large_case_025.txt AC 271 ms 3712 KB
large/large_case_026.txt AC 273 ms 3712 KB
large/large_case_027.txt AC 271 ms 3712 KB
large/large_case_028.txt AC 276 ms 3712 KB
large/large_case_029.txt AC 273 ms 3712 KB
small/case_000.txt AC 1 ms 256 KB
small/case_002.txt AC 1 ms 256 KB
small/case_003.txt WA 1 ms 256 KB
small/case_005.txt AC 1 ms 256 KB
small/case_006.txt WA 1 ms 256 KB
small/case_007.txt AC 1 ms 256 KB
small/case_008.txt AC 3 ms 256 KB
small/case_009.txt AC 3 ms 256 KB
small/case_010.txt AC 3 ms 256 KB
small/case_011.txt AC 3 ms 256 KB
small/case_012.txt WA 3 ms 256 KB
small/case_013.txt AC 3 ms 256 KB
small/case_014.txt AC 3 ms 256 KB
small/case_015.txt AC 3 ms 256 KB
small/case_016.txt AC 3 ms 256 KB
small/case_017.txt AC 3 ms 256 KB
small/case_018.txt AC 2 ms 256 KB
small/case_019.txt AC 3 ms 256 KB
small/case_020.txt AC 3 ms 256 KB
small/case_021.txt AC 3 ms 256 KB
small/case_022.txt WA 4 ms 256 KB
small/case_023.txt WA 4 ms 256 KB
small/case_024.txt WA 4 ms 256 KB
small/case_025.txt WA 4 ms 256 KB
small/case_026.txt WA 4 ms 256 KB
small/case_027.txt WA 4 ms 256 KB
small/case_028.txt WA 4 ms 256 KB
small/case_029.txt WA 4 ms 256 KB
small/case_030.txt WA 4 ms 256 KB
small/case_031.txt WA 4 ms 256 KB
small/case_032.txt WA 4 ms 256 KB
small/case_033.txt WA 4 ms 256 KB
small/case_034.txt WA 4 ms 256 KB
small/case_035.txt WA 4 ms 256 KB
small/case_036.txt WA 4 ms 256 KB
small/case_037.txt WA 4 ms 256 KB