⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 preface.cpp

📁 dd牛的usaco源代码!对学习算法
💻 CPP
字号:
/*
ID: dd.ener1
PROG: preface
LANG: C++
*/

#include <cstdio>
using namespace std;

long N;
long I,V,X,L,C,D,M;

void input(){
	freopen("preface.in","r",stdin);
	scanf("%d",&N);
	I=V=X=L=C=D=M=0;
}
//M:1000
inline void solve_qian(long k){
	switch(k){
		case 3:
			++M;
		case 2:
			++M;
		case 1:
			++M;
	}
}
//C:100 D:500 M:1000
inline void solve_bai(long k){
	switch(k){
		case 9://CM
			++C;
			++M;
			break;
		case 8://DCCC
			++C;
		case 7://DCC
			++C;
		case 6://DC
			++C;
		case 5://D
			++D;
			break;
		case 4://CD
			++C;
			++D;
			break;
		case 3://CCC
			++C;
		case 2:
			++C;
		case 1:
			++C;
	}
}
//X:10 L:50 C:100
inline void solve_shi(long k){
	switch(k){
		case 9://XC
			++X;
			++C;
			break;
		case 8://LXXX
			++X;
		case 7://LXX
			++X;
		case 6://LX
			++X;
		case 5://L
			++L;
			break;
		case 4://XL
			++X;
			++L;
			break;
		case 3://XXX
			++X;
		case 2:
			++X;
		case 1:
			++X;
	}
}
//I:1 V:5 X:10
inline void solve_ge(long k){
	switch(k){
		case 9://IX
			++I;
			++X;
			break;
		case 8://VIII
			++I;
		case 7://VII
			++I;
		case 6://VI
			++I;
		case 5://V
			++V;
			break;
		case 4://IV
			++I;
			++V;
			break;
		case 3://III
			++I;
		case 2:
			++I;
		case 1:
			++I;
	}
}
inline void solve(long k){
	solve_qian(k/1000);
	solve_bai((k/100)%10);
	solve_shi((k/10)%10);
	solve_ge(k%10);
}
void solve(){
	for(long i=1;i<=N;++i)
		solve(i);
}
void output(){
	freopen("preface.out","w",stdout);
	if(I)printf("I %d\n",I);
	if(V)printf("V %d\n",V);
	if(X)printf("X %d\n",X);
	if(L)printf("L %d\n",L);
	if(C)printf("C %d\n",C);
	if(D)printf("D %d\n",D);
	if(M)printf("M %d\n",M);
}
int main(){
	input();
	solve();
	output();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -