/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 540.0 KiB
#2 Accepted 2ms 540.0 KiB
#3 Accepted 1ms 772.0 KiB
#4 Accepted 25ms 3.312 MiB
#5 Accepted 29ms 3.773 MiB
#6 Accepted 25ms 3.02 MiB
#7 Accepted 26ms 3.02 MiB
#8 Accepted 31ms 3.816 MiB
#9 Accepted 38ms 4.02 MiB
#10 Accepted 29ms 3.773 MiB
#11 Accepted 29ms 3.879 MiB
#12 Accepted 30ms 3.77 MiB
#13 Accepted 29ms 3.895 MiB
#14 Accepted 33ms 3.77 MiB
#15 Accepted 29ms 3.82 MiB
#16 Accepted 29ms 3.898 MiB
#17 Accepted 29ms 3.836 MiB
#18 Accepted 29ms 3.77 MiB
#19 Accepted 30ms 4.035 MiB
#20 Accepted 32ms 3.836 MiB

Code

/*
 *Copyright (c) Swadheen Islam Robi (SIR01)
 *Created on Sun Jul 14 2024 9:39:45 PM
 */
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
#define pie 2*(acos(0.0))
#define yes cout<<"YES\n"
#define no cout<<"NO\n"
#define pb push_back
#define endl "\n"
#define lcm(a,b) (a*b)/(__gcd<ll>(a,b))
#define mod 1000000007
#define srt(v) sort(v.begin(),v.end())
#define rsrt(v) sort(v.rbegin(),v.rend())
#define ALLAHU_AKBAR ios::sync_with_stdio(false); cin.tie(nullptr);

void sir() {
    int n;
    cin >> n;

    vector<int> arr(n);
    for (int i = 0; i < n; ++i) {
        cin >> arr[i];
    }

    vector<int> a(n, 0);
    int ans = 0;
    for (int i = 0; i < n; ++i) {
        if(a[i]>0) continue;
        ans++;

        int j=i+arr[i];
        while(j<n)
        {
            a[j] += 1;
            if(a[j]>1) break;
            j += (arr[j]);
        }
    }

    vector<int> v(n);
    
    for (int i = 0; i < n; ++i) {

        if(i+arr[i]<n && a[i+arr[i]] == 1 ) cout<<ans + 1<<" ";
        else cout<<ans<<" ";    
    } cout<<endl;
}


int main() {
    ALLAHU_AKBAR

    ll t = 1;
    cin>>t;
    while(t--)
    {
        sir();
    }
    return 0;
}

Information

Submit By
Type
Submission
Problem
P1066 Light switches
Language
C++20 (G++ 13.2.0)
Submit At
2024-07-14 22:39:46
Judged At
2024-07-14 22:39:46
Judged By
Score
100
Total Time
38ms
Peak Memory
4.035 MiB