A. Shooshuns and Sequence
#include <iostream>
using namespace std;
int main()
{
int f,i,n,k,a[100005];
while(cin>>n>>k)
{
for(i=1;i<=n;i++)
cin>>a[i];
for(i=k,f=1;i<=n;i++)
if(a[i]!=a[k])
{f=0;break;}
if(f==0) cout<<-1<<endl;
else
{
for(i=k;i>=1;i--)
if(a[i]!=a[k])
break;
cout<<i<<endl;
}
}
return 0;
}
B. Cosmic Tables
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int n,m,k,i,j,t,a[1001][1001];
int row[1001],col[1001];
char x; int e,f;
while(~scanf("%d%d%d",&n,&m,&k))
{
for(i=1;i<=n;i++)
{
row[i]=i;
for(j=1;j<=m;j++)
{
col[j]=j;
scanf("%d",&a[i][j]);
}
}
for(i=1;i<=k;i++)
{
getchar();
scanf("%c%d%d",&x,&e,&f);
if(x=='c') {t=col[e];col[e]=col[f];col[f]=t;}
if(x=='r') {t=row[e];row[e]=row[f];row[f]=t;}
if(x=='g') {cout<<a[row[e]][col[f]]<<endl;}
}
}
return 0;
}
D. Olympiad
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn=100001;
int a[maxn],b[maxn];
bool cmp(int a,int b)
{
return a>b;
}
int main()
{
int n,x,i,ans;
while(~scanf("%d%d",&n,&x))
{
for(i=1;i<=n;i++) scanf("%d",&a[i]);sort(a+1,a+1+n,cmp);
for(i=1;i<=n;i++) scanf("%d",&b[i]);sort(b+1,b+1+n);
for(i=1,ans=1;i<=n;i++)
{
if(x<=a[ans]+b[i])
ans++;
}
cout<<1<<" "<<ans-1<<endl;
}
return 0;
}