1 条题解
-
0
C :
#include <stdio.h> void main() { int i,a[100],k,count,key,n,j,b[100]; scanf("%d",&n); while(n!=0) { k=key=0; for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<n;i++) { count=0; for(j=i+1;j<n;j++) { if(a[j]<a[i]) {b[count]=a[j]; count++;} } for(k=0;k<count-1;k++) { if(b[k]<b[k+1]) key=1; } } if(key==0) printf("Yes\n"); else printf("No\n"); scanf("%d",&n); } }
C++ :
#include <stdio.h> int top; int Stack(int stack[], int a, int &pre) { if (a <= pre) { if (stack[--top] != a) { //printf("%d %d\n", stack[top],a); return 0; } else return 1; } for (int i = pre + 1; i <= a; i++) { stack[top++] = i; } top--; pre = a; return 1; } int main(int argc, char *argv[]) { int n; int a, stack[105]; while (scanf("%d", &n) != EOF) { if(n==0) break; top = 1; stack[0]=0; int pre = 0; int flag = 1; for (int i = 0; i < n; i++) { scanf("%d", &a); if (flag == 1) { flag = Stack(stack, a, pre); /*for (int j=1; j<top; j++ ) { printf("%d ",stack[j]); } printf("\n");*/ } } if (flag == 1) { printf("Yes\n"); }else printf("No\n"); } return 0; }
Java :
import java.util.Scanner; import java.util.Stack; public class Main { public static void main(String[] args) { int n = 0; Scanner in = new Scanner(System.in); while ((n = in.nextInt()) != 0) { int a[] = new int[100]; for (int i = 0; i < n; i++) a[i] = in.nextInt(); Stack s = new Stack(); int index = 0; for (int i = 1; i <= n; i++) { s.add(i); while(!s.isEmpty()){ if (Integer.parseInt(s.lastElement().toString()) == a[index]) { index++; s.pop(); }else break; } } if (s.isEmpty()) System.out.println("Yes"); else System.out.println("No"); } } }
- 1
信息
- ID
- 1652
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者