Submission #88687
Source Code Expand
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <queue>
#include <cmath>
#include <stack>
#define f first
#define s second
#define mkp make_pair
#define pb push_back
#define pii pair < int , int >
#define FILL(a,b) memset(a,b,sizeof(a))
#define FOR(a,b,c) for(a=b;a<=c;a++)
#define TFOR(a,b,c) for(a=b;a>=c;a--)
#define VFOR(a,b) for(a=0;a<b.size();a++)
#define ll long long
#define INF (int)1000000000
#define LINF (ll)1e16
#define vi vector<int>
using namespace std;
int N,ss=0;
int Ar[1100005];
int sma[1100005];
int big[1100005];
pii ST[1100005];
pii val[110005];
vector< pii > vec,v2;
int main()
{
int i,j;
scanf(" %d",&N);
FOR(i,1,N)
scanf(" %d",&Ar[i]);
ST[++ss]=mkp(-1,N+1);
TFOR(i,N,1)
{
while(ST[ss].f > Ar[i]) ss--;
sma[i]=ST[ss].s;
ST[++ss]=mkp(Ar[i],i);
}
ss=0;
ST[++ss]=mkp(INF,0);
FOR(i,1,N)
{
while(ST[ss].f < Ar[i]) ss--;
big[i]=ST[ss].s;
ST[++ss]=mkp(Ar[i],i);
}
FOR(i,1,N)
val[i]=mkp(Ar[i]-i,i);
sort(val+1,val+N+1);
FOR(i,1,N)
FOR(j,i+1,N)
{
if(val[j].f!=val[i].f) break;
if(val[j].s >= sma[val[i].s]) break;
if(val[i].s <= big[val[j].s]) continue;
vec.pb(mkp(val[i].s,val[j].s)); break;
}
sort(vec.begin(),vec.end());
int mn=INF;
for(i=vec.size()-1; i>=0; i--)
{
if(vec[i].s > mn) continue;
v2.pb(vec[i]);
mn=vec[i].s;
}
sort(v2.begin(),v2.end());
printf("%d\n",(int)v2.size());
VFOR(i,v2) printf("%d %d\n",v2[i].f,v2[i].s);
return 0;
}
Submission Info
Submission Time
2013-07-06 23:05:11+0900
Task
15 - Empodia
User
oyildiz
Language
C++ (G++ 4.6.4)
Score
100
Code Size
1556 Byte
Status
AC
Exec Time
540 ms
Memory
24360 KB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:36:17: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
./Main.cpp:38:22: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
Judge Result
Set Name
Set01
Set02
Set03
Set04
Set05
Set06
Set07
Set08
Set09
Set10
Set11
Set12
Set13
Set14
Set15
Set16
Set17
Set18
Set19
Set20
Score / Max Score
5 / 5
5 / 5
5 / 5
5 / 5
5 / 5
5 / 5
5 / 5
5 / 5
5 / 5
5 / 5
5 / 5
5 / 5
5 / 5
5 / 5
5 / 5
5 / 5
5 / 5
5 / 5
5 / 5
5 / 5
Status
Set Name
Test Cases
Set01
01
Set02
02
Set03
03
Set04
04
Set05
05
Set06
06
Set07
07
Set08
08
Set09
09
Set10
10
Set11
11
Set12
12
Set13
13
Set14
14
Set15
15
Set16
16
Set17
17
Set18
18
Set19
19
Set20
20
Case Name
Status
Exec Time
Memory
01
AC
35 ms
10164 KB
02
AC
59 ms
10156 KB
03
AC
36 ms
10176 KB
04
AC
36 ms
10140 KB
05
AC
37 ms
10212 KB
06
AC
36 ms
10164 KB
07
AC
37 ms
10176 KB
08
AC
36 ms
10120 KB
09
AC
37 ms
10172 KB
10
AC
37 ms
10172 KB
11
AC
56 ms
10680 KB
12
AC
54 ms
10932 KB
13
AC
55 ms
10672 KB
14
AC
55 ms
10796 KB
15
AC
55 ms
10668 KB
16
AC
58 ms
10808 KB
17
AC
58 ms
10928 KB
18
AC
49 ms
10548 KB
19
AC
55 ms
10804 KB
20
AC
540 ms
24360 KB