Submission #722812

# Submission time Handle Problem Language Result Execution time Memory
722812 2023-04-12T23:06:30 Z n0sk1ll Boat (APIO16_boat) C++14
9 / 100
2000 ms 4940 KB
#include <bits/stdc++.h>

#define FAST ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);cerr.tie(0)
#define mp make_pair
#define xx first
#define yy second
#define pb push_back
#define pf push_front
#define popb pop_back
#define popf pop_front
#define all(x) x.begin(),x.end()
#define ff(i,a,b) for (int i = a; i < b; i++)
#define fff(i,a,b) for (int i = a; i <= b; i++)
#define bff(i,a,b) for (int i = b-1; i >= a; i--)
#define bfff(i,a,b) for (int i = b; i >= a; i--)

using namespace std;
long double typedef ld;
unsigned int typedef ui;
long long int typedef li;
pair<int,int> typedef pii;
pair<li,li> typedef pli;
pair<ld,ld> typedef pld;
vector<vector<int>> typedef graph;
unsigned long long int typedef ull;
//const int mod = 998244353;
const int mod = 1000000007;







//Note to self: Check for overflow

int a[503],b[503];
int dp[2200006];

int solve3v(int n)
{
    dp[0]=1;
    fff(i,1,n) fff(j,0,i-1) if (a[i]>a[j]) (dp[i]+=dp[j])%=mod;

    int ans=0;
    fff(i,1,n) (ans+=dp[i])%=mod;
    return ans;
}

vector<pair<pii,int>> segs;

int solve(int n)
{
    int shift=0;
    fff(i,1,n) segs.pb({{a[i],b[i]},i});
    sort(all(segs));

    int maxr=0;
    for (auto it : segs)
    {
        if (it.xx.xx>maxr) shift+=it.xx.xx-(maxr+1);
        a[it.yy]=it.xx.xx-shift,b[it.yy]=it.xx.yy-shift;
        maxr=max(maxr,it.xx.yy-shift);
    }

    dp[0]=1;
    fff(i,1,n)
    {
        int tsum=0;
        fff(s,0,1'200'000)
        {
            (tsum+=dp[s])%=mod;
            if (a[i]<=s && s<=b[i]) dp[s]=tsum;
        }

        //cout<<i<<": "; cout<<"["<<a[i]<<","<<b[i]<<"] --- ";
        fff(s,0,10) cout<<dp[s]<<" "; cout<<endl;
    }

    int ans=0;
    fff(s,1,1'200'000) (ans+=dp[s])%=mod;
    return ans;
}

int main()
{
    FAST;

    int n; cin>>n;
    fff(i,1,n) cin>>a[i]>>b[i];

    bool radi3v=true;
    fff(i,1,n) if (a[i]!=b[i]) radi3v=false;

    if (radi3v) cout<<solve3v(n)<<"\n";
    else cout<<solve(n)<<"\n";
}

//Note to self: Check for overflow

Compilation message

boat.cpp: In function 'int solve(int)':
boat.cpp:13:20: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   13 | #define fff(i,a,b) for (int i = a; i <= b; i++)
      |                    ^~~
boat.cpp:77:9: note: in expansion of macro 'fff'
   77 |         fff(s,0,10) cout<<dp[s]<<" "; cout<<endl;
      |         ^~~
boat.cpp:77:39: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   77 |         fff(s,0,10) cout<<dp[s]<<" "; cout<<endl;
      |                                       ^~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 2 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 2 ms 340 KB Output is correct
7 Correct 2 ms 340 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 1 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 1 ms 212 KB Output is correct
14 Correct 1 ms 212 KB Output is correct
15 Correct 1 ms 212 KB Output is correct
16 Correct 1 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 1 ms 212 KB Output is correct
20 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 2 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 2 ms 340 KB Output is correct
7 Correct 2 ms 340 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 1 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 1 ms 212 KB Output is correct
14 Correct 1 ms 212 KB Output is correct
15 Correct 1 ms 212 KB Output is correct
16 Correct 1 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 1 ms 212 KB Output is correct
20 Correct 1 ms 340 KB Output is correct
21 Execution timed out 2070 ms 460 KB Time limit exceeded
22 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 457 ms 4940 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 2 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 2 ms 340 KB Output is correct
7 Correct 2 ms 340 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 1 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 1 ms 212 KB Output is correct
14 Correct 1 ms 212 KB Output is correct
15 Correct 1 ms 212 KB Output is correct
16 Correct 1 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 1 ms 212 KB Output is correct
20 Correct 1 ms 340 KB Output is correct
21 Execution timed out 2070 ms 460 KB Time limit exceeded
22 Halted 0 ms 0 KB -