| Task: | Call a Cab |
| Sender: | Game of Nolife |
| Submission time: | 2015-11-25 21:18:06 +0200 |
| Language: | C++ |
| Status: | READY |
| Result: | TIME LIMIT EXCEEDED |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.06 s | details |
| #2 | TIME LIMIT EXCEEDED | -- | details |
| #3 | WRONG ANSWER | 2.00 s | details |
| #4 | ACCEPTED | 0.07 s | details |
| #5 | ACCEPTED | 0.05 s | details |
| #6 | ACCEPTED | 0.05 s | details |
| #7 | ACCEPTED | 0.74 s | details |
| #8 | TIME LIMIT EXCEEDED | -- | details |
| #9 | ACCEPTED | 1.55 s | details |
| #10 | TIME LIMIT EXCEEDED | -- | details |
| #11 | TIME LIMIT EXCEEDED | -- | details |
Code
#include <bits/stdc++.h>
#define F first
#define S second
using namespace std;
typedef long long ll;
typedef long double ld;
int dp[101010];
ll dm[101010];
ll hr[101010];
ll d[101010];
ll h[101010];
ll inf=1e18;
int inf2=1e9;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
int t,n;
cin>>t>>n;
for (int i=0;i<t;i++){
cin>>dm[i]>>hr[i];
}
for (int i=1;i<n;i++){
cin>>d[i]>>h[i];
dp[i]=inf2;
}
dp[0]=0;
for (int i=0;i<n-1;i++){
for (int j=0;j<t;j++){
ll td=0;
ll ks=0;
ll mik=inf;
ll mak=-inf;
for (int a=i+1;a<n;a++){
td+=d[a];
ks+=h[a];
mik=min(mik, ks);
mak=max(mak, ks);
//cout<<mik<<" mima "<<mak<<endl;
if (mak-mik<=hr[j]&&td>=dm[j]){
//cout<<i<<" "<<a<<endl;
dp[a]=min(dp[a], dp[i]+1);
}
}
}
}
if (dp[n-1]<inf2){
cout<<dp[n-1]<<endl;
}
else{
cout<<"IMPOSSIBLE"<<endl;
}
}Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 100 400 791 14000 114 90000 315 24000 263 64000 ... |
| correct output |
|---|
| 38 |
| user output |
|---|
| 38 |
Test 2
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 200 20000 8054 12000 5906 25000 694 10000 6154 33000 ... |
| correct output |
|---|
| 10 |
| user output |
|---|
| (empty) |
Test 3
Verdict: WRONG ANSWER
| input |
|---|
| 5 19999 29 310000 30 27000 15 24000 47 29000 ... |
| correct output |
|---|
| 329 |
| user output |
|---|
| 358 |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 20 990 9 48000 12 12000 50 47000 32 43000 ... |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| IMPOSSIBLE |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 2 7 4 6000 35 150000 2 2000 2 2000 ... |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
Test 6
Verdict: ACCEPTED
| input |
|---|
| 1 2 1000 359000 999 170000 |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| IMPOSSIBLE |
Test 7
Verdict: ACCEPTED
| input |
|---|
| 2 19225 4 6000 35 150000 2 2000 2 2000 ... |
| correct output |
|---|
| 7209 |
| user output |
|---|
| 7209 |
Test 8
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 20 19994 64104 18485 76684 42914 9274 32600 62514 5429 ... |
| correct output |
|---|
| 7436 |
| user output |
|---|
| (empty) |
Test 9
Verdict: ACCEPTED
| input |
|---|
| 4 19991 44888 26641 8529 28990 32092 26053 3517 46793 ... |
| correct output |
|---|
| 6510 |
| user output |
|---|
| 6510 |
Test 10
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 200 49982 53794 19371 61913 14454 27602 37952 95478 10677 ... |
| correct output |
|---|
| 15082 |
| user output |
|---|
| (empty) |
Test 11
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 200 50000 11051 7334 85759 12058 95157 12080 87226 41381 ... |
| correct output |
|---|
| 49999 |
| user output |
|---|
| (empty) |
