记得我上大学的时候这么个写法是不行的啊
C里要用malloc
C++里要用new
为毛现在可以这么写啊?是新标准的缘故?
大家可以拿这个代码在SOJ.ME上去测http://soj.me/1134这个题目
看while下面的两行代码
#include <stdio.h>
#include <stdlib.h>
void main() {
int n,s;
int i = 0;
int j = 1;
int t = 1;
int flag = 1;
while(scanf("%d%d",&n,&s) && n != 0){
int a[n];
int b[n];
for(i=0; i<n; i+){
scanf("%d%d", &a[i], &b[i]);
}
for(i=0; i<n; i++){
for(j=i+1; j<n; j++){
if(b[i] >= b[j]){
t = b[i];
b[i] = b[j];
b[j] = t;
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
}
for(j=0; j<n; j++){
if(s < b[j]){
flag = 0;
break;
}
s = s+a[j];
}
if(flag == 0){
printf("NO\n");
}else{
printf("YES\n");
}
}
exit(0);
}
C里要用malloc
C++里要用new
为毛现在可以这么写啊?是新标准的缘故?
大家可以拿这个代码在SOJ.ME上去测http://soj.me/1134这个题目
看while下面的两行代码
#include <stdio.h>
#include <stdlib.h>
void main() {
int n,s;
int i = 0;
int j = 1;
int t = 1;
int flag = 1;
while(scanf("%d%d",&n,&s) && n != 0){
int a[n];
int b[n];
for(i=0; i<n; i+){
scanf("%d%d", &a[i], &b[i]);
}
for(i=0; i<n; i++){
for(j=i+1; j<n; j++){
if(b[i] >= b[j]){
t = b[i];
b[i] = b[j];
b[j] = t;
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
}
for(j=0; j<n; j++){
if(s < b[j]){
flag = 0;
break;
}
s = s+a[j];
}
if(flag == 0){
printf("NO\n");
}else{
printf("YES\n");
}
}
exit(0);
}
