快樂的跳躍者(相鄰數之差)
阿新 • • 發佈:2018-12-09
如果有n個數, 這n個數中相鄰數之間的差的絕對值能夠取遍[1,n-1]之間所有的整數.那麼就輸出OK否則輸出NO;
例如:1 4 2 3 就是是'OK' ,因為相鄰數之差的絕對值分別為3、2、1。
輸入
有T組測試資料。輸入的第一行是資料組數T,其後每一行是一組測試資料。每行包含一個整數n(n≤300),然後是n個整數,表示一個輸入序列
輸出
對於輸入的每一行,輸出一行 OK' 或者 NO' ;
程式碼如下:
#include<cstdio> #include<iostream> #include<cmath> using namespace std; int main() { int NUM; int n; int num1,num2; int ab; int flag=0; int *a; int i,j; scanf("%d",&NUM); for(j=0;j<NUM;j++) { flag=0; scanf("%d",&n); a=new int[n](); scanf("%d",&num1); for(i=1;i<n;i++){ scanf("%d",&num2); ab=abs(num2-num1); if(ab<n){ if(ab>=1){ if(a[ab]==0){ a[ab]=1; flag++; } } } num1=num2; } if(flag==n-1){ cout<<"OK"<<endl; } else{ cout<<"NO"<<endl; } } return 0; }