example1
https://pintia.cn/problem-sets/994805260223102976/problems/994805298269634560
#include<iostream>
using namespace std;
int main(){
int number[10];
for(int i=0;i<10;++i){
cin>>number[i];
}
int m = 1;
while(number[m]==0){
++m;//找到最小的不为0的数
}
cout<<m;
--number[m];
for(int i=0;i<number[0];++i){
cout<<0;//输出0
}
for(;m<10;++m){
for(int i=0;i<number[m];++i){
cout<<m;
}
}
return 0;
}
example2
- http://acm.hdu.edu.cn/showproblem.php?pid=2037
#include<iostream>
#include<algorithm>
using namespace std;
typedef struct {
int begin;
int end;
}Tv;
bool cmp(const Tv& a, const Tv& b) {
return a.end < b.end;//按end,正序排列
}
int main() {
//dp
int n;
Tv tv[100];
while (cin >> n) {
if (n == 0) {
break;
}
for (int k = 0; k < n; ++k) {
cin >> tv[k].begin >> tv[k].end;
}
sort(tv, tv + n, cmp);
int lastTime = tv[0].end;
int i;
int count = 1;
for (i = 1; i < n; ++i) {
if (tv[i].begin >= lastTime) {
lastTime = tv[i].end;
count++;
}
}
cout << count<<endl;
}
}