#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define clr(a) memset(a,0,sizeof(a))
const int N = 1010;
int a[N];
int vis[N];
int b[N];
int num;
int n;
int main(){
while(scanf("%d",&n)!=EOF){
clr(a);
clr(b);clr(vis);
num = 0;
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(int i=n-1;i>=0;i--){
if(!vis[a[i]]){
b[num++] = a[i];
vis[a[i]] = 1;
}
}
printf("%d\n",num );
for(int i=num-1;i>0;i--){
printf("%d ", b[i]);
}
printf("%d\n",b[0]);
}
return 0;
}
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define clr(a) memset(a,0,sizeof(a))
const int N = 1010;
int n;
char s[N];
int main(){
int num = 0;
scanf("%d %s",&n,s);
for(int i=0;i<n;i++){
if(s[i]=='x'&&s[i+1]=='x'&&s[i+2]=='x'){
num++;
}
}
cout<<num<<endl;
return 0;
}
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define clr(a) memset(a,0,sizeof(a))
const int N = 1010;
const int maxn = 2e5+10;
ll n,m;
ll a[maxn];
ll b[maxn];
int main(){
while(scanf("%lld%lld",&n,&m)!=EOF){
for(int i=1;i<=n;i++){
scanf("%lld",&a[i]);
a[i] += a[i-1];
}
for(int i=1;i<=m;i++){
scanf("%lld",&b[i]);
ll pos = lower_bound(a+1,a+n+1,b[i])-a-1;
printf("%lld %lld\n",pos+1,b[i]-a[pos]);
}
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define clr(a) memset(a,0,sizeof(a))
const int maxn = 1e5+10;
int n,a[maxn];
set<int>se;
int main(){
while(scanf("%d",&n)!=EOF){
int d,pre,num;
se.clear();
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
if(n==1||n==2){
puts("0");continue;
}
int i;
// 0 0
d = a[2] - a[1];
pre = a[2];
num = 0;
for(i=3;i<=n;i++){
if(a[i]-pre==d)
pre = a[i];
else if(a[i]-pre == d+1){
pre = a[i]-1;num++;
}
else if(a[i]-pre == d-1){
pre = a[i]+1;num++;
}
else
break;
}
if(i==n+1)
se.insert(num);
// 1 1
d = a[2] - a[1];
pre = a[2] + 1 ;
num = 2;
for(i=3;i<=n;i++){
if(a[i]-pre==d)
pre = a[i];
else if(a[i]-pre == d+1){
pre = a[i]-1;num++;
}
else if(a[i]-pre == d-1){
pre = a[i]+1;num++;
}
else
break;
}
if(i==n+1)
se.insert(num);
// -1 -1
d = a[2] - a[1];
pre = a[2] - 1 ;
num = 2;
for(i=3;i<=n;i++){
if(a[i]-pre==d)
pre = a[i];
else if(a[i]-pre == d+1){
pre = a[i]-1;num++;
}
else if(a[i]-pre == d-1){
pre = a[i]+1;num++;
}
else
break;
}
if(i==n+1)
se.insert(num);
//1 0
d = a[2] - a[1] - 1;
pre = a[2] ;
num = 1;
for(i=3;i<=n;i++){
if(a[i]-pre==d)
pre = a[i];
else if(a[i]-pre == d+1){
pre = a[i]-1;num++;
}
else if(a[i]-pre == d-1){
pre = a[i]+1;num++;
}
else
break;
}
if(i==n+1)
se.insert(num);
// 0 -1
d = a[2] - a[1] - 1;
pre = a[2] - 1 ;
num = 1;
for(i=3;i<=n;i++){
if(a[i]-pre==d)
pre = a[i];
else if(a[i]-pre == d+1){
pre = a[i]-1;num++;
}
else if(a[i]-pre == d-1){
pre = a[i]+1;num++;
}
else
break;
}
if(i==n+1)
se.insert(num);
//1 -1
d = a[2] - a[1] - 2;
pre = a[2] - 1 ;
num = 2;
for(i=3;i<=n;i++){
if(a[i]-pre==d)
pre = a[i];
else if(a[i]-pre == d+1){
pre = a[i]-1;num++;
}
else if(a[i]-pre == d-1){
pre = a[i]+1;num++;
}
else{
break;
}
}
if(i==n+1)
se.insert(num);
//0 1
d = a[2] - a[1] + 1;
pre = a[2] + 1;
num = 1;
for(i=3;i<=n;i++){
if(a[i]-pre==d)
pre = a[i];
else if(a[i]-pre == d+1){
pre = a[i]-1;num++;
}
else if(a[i]-pre == d-1){
pre = a[i]+1;num++;
}
else
break;
}
if(i==n+1)
se.insert(num);
// -1 0
d = a[2] - a[1] + 1;
pre = a[2] ;
num = 1;
for(i=3;i<=n;i++){
if(a[i]-pre==d)
pre = a[i];
else if(a[i]-pre == d+1){
pre = a[i]-1;num++;
}
else if(a[i]-pre == d-1){
pre = a[i]+1;num++;
}
else
break;
}
if(i==n+1)
se.insert(num);
//-1 1
d = a[2] - a[1] + 2;
pre = a[2] + 1;
num = 2;
for(i=3;i<=n;i++){
if(a[i]-pre==d)
pre = a[i];
else if(a[i]-pre == d+1){
pre = a[i]-1;num++;
}
else if(a[i]-pre == d-1){
pre = a[i]+1;num++;
}
else
break;
}
if(i==n+1)
se.insert(num);
if(se.size()==0) puts("-1");
else printf("%d\n",*(se.begin()));
}
return 0;
}
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define clr(a) memset(a,0,sizeof(a))
const int N = 1010;
const int maxn = 1e5+10;
const int INF = 0x3f3f3f3f;
ll n,m,x;
int main(){
while(scanf("%lld%lld",&n,&m)!=EOF){
ll sum = 0,minn = INF,maxx = -INF;
for(int i=0;i<n;i++){
scanf("%lld",&x);
sum += x;
if(sum > maxx) maxx = sum;
if(sum < minn) minn = sum;
}
if(-minn > m || maxx > m)
puts("0");
else if(maxx <= 0)
printf("%lld\n",m+minn+1);
else if(minn >= 0)
printf("%lld\n",m-maxx+1);
else{
ll a=-minn;
ll b=m-maxx;
if(b-a+1 > 0 && b-a+1 <= m)
printf("%lld\n",b-a+1);
else puts("0");
}
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn = 2e5 + 5;
int n,k;
struct node{
int v,pos,ans;
}a[maxn];
bool cmp1(node x,node y){
return x.v<y.v;
}
bool cmp2(node x,node y){
return x.pos<y.pos;
}
vector<int>ve[maxn];
int find_pos(int x){
int l = 1,r = n;
while (r >= l){
int mid = (l+r)/2;
if (a[mid].v >= x) r=mid-1;
else l = mid+1;
}
return l;
}
int main() {
while (scanf ("%d%d",&n,&k)!=EOF){
for (int i=1;i<=n;i++){
scanf ("%d",&a[i].v);
a[i].pos = i;
a[i].ans = 0;
ve[i].clear();
}
for (int i=0;i<k;i++){
int x,y;
scanf ("%d%d",&x,&y);
if (a[x].v>a[y].v)
ve[x].push_back(y);
else if (a[x].v<a[y].v)
ve[y].push_back(x);
}
sort(a+1,a+n+1,cmp1);
for (int i=1;i<=n;i++){
a[i].ans = find_pos(a[i].v) - ve[a[i].pos].size() - 1;
}
sort(a+1,a+n+1,cmp2);
for (int i=1;i<n;i++){
printf("%d ",a[i].ans);
}
printf ("%d\n",a[n].ans);
}
return 0;
}