NC200375. 友军寻路算法
描述
输入描述
多组输入,其中每组:
第1行:两个由空格分开的正整数n, L,分别表示路口数以及两队之间的距离
第2行:n个由空格分开的正整数,第i个数表示步行米后会经历第i个路口转弯
数据保证每组的都是严格递增的
输出描述
对于每组输入,输出1行:OK或GG
示例1
输入:
3 3 3 6 9 3 3 3 6 8 3 3 2 5 8
输出:
OK GG OK
C++14(g++5.4) 解法, 执行用时: 7ms, 内存消耗: 504K, 提交时间: 2019-12-14 15:49:26
#include<iostream> using namespace std; int main() { ios::sync_with_stdio(false); int n,l,li,lj,ind; while(cin>>n){ cin>>l; ind=0; for(int i=1;i<=n;++i){ lj=li; cin>>li; if(i>1){ if(li-lj<l) ind=1; } } if(ind) cout<<"GG"<<endl; else cout<<"OK"<<endl; } return 0; }
C(clang 3.9) 解法, 执行用时: 3ms, 内存消耗: 308K, 提交时间: 2019-12-14 15:43:40
#include<stdio.h> int main() { int n,l,i; int a[110]; while(scanf("%d%d",&n,&l)!=EOF) { for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<n-1;i++) { if(a[i+1]-a[i]<l) break; } if(i>=n-1) printf("OK\n"); else printf("GG\n"); } return 0; }
C++11(clang++ 3.9) 解法, 执行用时: 5ms, 内存消耗: 484K, 提交时间: 2019-12-14 15:34:37
#include<bits/stdc++.h> using namespace std; int main() { int n,a[100000],d,p; while(cin>>n>>d) { p=0; for(int i=0;i<n;i++) { cin>>a[i]; if(a[i]-a[i-1]<d&&i!=0) p=1; } if(p==0) cout<<"OK\n"; else cout<<"GG\n"; } return 0; }
Python3(3.5.2) 解法, 执行用时: 29ms, 内存消耗: 3416K, 提交时间: 2019-12-13 23:02:04
while True: try: n,l=map(int,input().split()) a=list(map(int,input().split())) print('GG' if any(a[i]-a[i-1]<l for i in range(1,len(a))) else 'OK') except: break