Gym 101063
F - Bandejao
答案:
#include <iostream>
#include<bits/stdc++.h>
#define ll long long
#define INF 0x3f3f3f3f
const int N = 1e5 + 10;
using namespace std;
int main()
{
int n,k;
cin>>n>>k;
if((n+1)%k==0) puts("yes");
else puts("no");
return 0;
}
J - The Keys
答案:
#include <iostream>
#include<bits/stdc++.h>
#define ll long long
#define INF 0x3f3f3f3f
const int N = 1e5 + 10;
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
int tot=0;
int t;
cin>>t;
for(int i=0;i<n-1;i++){
int k;
cin>>k;
if(k!=t) tot++;
t=k;
}
double ans=tot*1.0*(1.0-1.0/m);
//cout<<tot<<endl;
printf("%.15f\n",ans);
return 0;
}
K - Dire, Dire Docks
答案:
#include <iostream>
#include<bits/stdc++.h>
#define ll long long
#define INF 0x3f3f3f3f
#define eps 1e-6
const int N = 1e3 + 10;
using namespace std;
struct node{
int x;
int y;
int id;
}dp[N];
bool cmp(node x,node y){
if(x.x<y.x) return 1;
else if(x.x==y.x&&x.y<y.y) return 1;
return 0;
}
double ang(node x,node y){
int xx=x.x-y.x;
int yy=x.y-y.y;
if(!yy) return 99999999.9;
double k=xx*1.0/yy;
return k;
}
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>dp[i].x>>dp[i].y;
dp[i].id=i;
}
sort(dp+1,dp+1+n,cmp);
double kk=ang(dp[n],dp[n-1]);
bool flag=0;
for(int i=n-1;i>1;i--){
if(fabs(ang(dp[i],dp[i-1])-kk)>=eps){
flag=1;
cout<<dp[i-1].id<<" "<<dp[n].id<<endl;
break;
}
}
if(!flag) cout<<"-1"<<endl;
else{
for(int i=1;i<n;i++){
cout<<dp[i].id<<" "<<dp[i+1].id<<endl;
}
}
return 0;
}