📄 1168.cpp
字号:
/* This Code is Submitted by wywcgs for Problem 1168 on 2005-12-25 at 12:05:19 */
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAX = 256;
class Node {
public:
char lo[MAX+1];
int v, l;
bool operator <(const Node&) const;
};
bool Node::operator <(const Node& n) const {
if(l != n.l) return l < n.l;
else return strcmp(lo, n.lo) < 0;
}
Node node[MAX];
bool find(const Node&, int);
int main()
{
int n, i;
while(true) {
bool complete = true;
for(n = 0; true; n++) {
int r = scanf("\n(%d", &node[n].v);
if(r == 0) {
if(getchar() == ')') break;
else complete = false, scanf("%*s");
} else if(r == EOF) return 0;
else {
scanf(",%s", node[n].lo);
node[n].l = strlen(node[n].lo) - 1;
node[n].lo[node[n].l] = 0;
}
}
if(complete) {
sort(node, node+n);
if(n == 0 || node[0].l != 0) complete = false;
for(i = 1; i < n && complete; i++) {
if(!strcmp(node[i].lo, node[i-1].lo)) complete = false;
else if(node[i].l > node[i-1].l+1) complete = false;
else if(!find(node[i], i)) complete = false;
}
}
if(!complete) printf("not complete\n");
else {
for(i = 0; i < n; i++) {
printf("%d", node[i].v);
if(i == n-1) putchar('\n');
else putchar(' ');
}
}
}
return 0;
}
bool find(const Node& n, int o)
{
int i;
for(i = 0; i < o; i++) {
if(!strncmp(n.lo, node[i].lo, n.l-1)) return true;
}
return false;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -