阅览室
#include<bits/stdc++.h>
using namespace std;
const int N = 1e3 + 15;
struct node
{
int hh,mm;
bool flag;//这本书当前有没有借出
}a[N];
int n;
double Get(int h1,int m1,int h2,int m2)
{
double res = 0;
res = h2 * 60 + m2 - (h1 * 60 + m1);
return res;
}
int main()
{
cin >> n;
int id,hh,mm;
char op;
double sum,num;
while(n --)
{
for(int i = 0; i < N; i ++)
{
a[i].flag = false;
}
sum = 0;
num = 0;
while(cin >> id && cin >> op && scanf("%d:%d",&hh,&mm) && id != 0)
{
if(op == 'S')
{
a[id].flag = true;
a[id].hh = hh;
a[id].mm = mm;
}
else if(op == 'E')
{
if(a[id].flag)
{
sum += Get(a[id].hh,a[id].mm,hh,mm);
num ++;
a[id].flag = false;
}
}
}
if(num != 0) printf("%0.0f %0.0f\n",num,sum / num);
else cout << 0 << " " << 0 << endl;
}
return 0;
}
整除光棍
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
int cnt=0;
ll m=0,n;
cin>>n;
while(1){
m=m*10+1;
cnt++;
if(m>=n){
break;
}
}
while(1){
cout<<m/n;
m%=n;
if(m%n==0){
break;
}
m=m*10+1;
cnt++;
}
cout<<" "<<cnt;
return 0;
}
天梯赛座位分配
#include <stdio.h>
int main(){
int map[105][105]={0},a[105][105]={0},n,m,max=0;
scanf("%d", &n);
for(int i=0;i<n;i++){
scanf("%d", &m);
if(m>max)max=m;
for(int j=0;j<10*m;j++){
map[i][j]=1;
}
}
int num=1,flag=-1;//上一个被分配座位的高校是几号,如果上一个高校还是本校的话,num++
for(int i=0;i<10*max;i++){
for(int j=0;j<n;j++){
if(map[j][i]){
if(flag!=j){
a[j][i]=num++;
flag=j;
}
else{
num+=1;
a[j][i]=num++;
flag=j;
}
}
}
}
for(int i=0;i<n;i++){
printf("#%d\n",i+1);
for(int j=0;j<10*max;j++){
if(a[i][j])printf("%d%c",a[i][j],(j+1)%10==0?'\n':' ');
}
}
return 0;
}
Left_Pad
#include<bits/stdc++.h>
using namespace std;
string line;
int main()
{
int n;
char op;
cin >> n >> op;
getchar();
getline(cin,line);
if(line.size() <= n)
{
for(int i = 0; i < n - line.size(); i ++)
printf("%c",op);
cout << line << endl;
}
else
{
for(int i = line.size() - n; i < line.size(); i ++)
{
cout << line[i];
}
cout << endl;
}
return 0;
}
个位数统计
#include<bits/stdc++.h>
using namespace std;
const int N = 1e3 + 15;
int b[11];//b[i]表示,i在N中出现过多少次
int main()
{
char temp;
while(1)
{
temp = getchar();
if(temp == '\n') break;
b[temp - '0'] ++;
}
for(int i = 0; i < 10; i ++)
{
if(b[i] != 0) printf("%d:%d\n",i,b[i]);
}
return 0;
}