uva 11995 I Can Guess the Data Structure!
2014-06-19 22:57
351 查看
水题一道,做着玩
#include <stdio.h>
#include <stack>
#include <queue>
using namespace std;
int main(void){
int n, i;
int oper, data;
queue<int> q;
priority_queue<int> pq;
stack<int> s;
bool pq_possible, q_possible, s_possible;
int count;
//freopen("input.dat", "r", stdin);
while(scanf("%d",&n) != EOF){
while(!s.empty()) s.pop();
while(!pq.empty()) pq.pop();
while(!q.empty()) q.pop();
pq_possible = q_possible = s_possible = true;
for(i=1; i<=n; i++){
scanf("%d %d", &oper, &data);
if(1 == oper){
if(s_possible)
s.push(data);
if(q_possible)
q.push(data);
if(pq_possible)
pq.push(data);
}
else{
if(s_possible){
if(!s.empty()){
if(s.top() == data){
s.pop();
}
else{
s_possible = false;
}
}
else{
s_possible = false;
}
}
if(pq_possible){
if(!pq.empty()){
if(pq.top() == data){
pq.pop();
}
else{
pq_possible = false;
}
}
else{
pq_possible = false;
}
}
if(q_possible){
if(!q.empty()){
if(q.front() == data){
q.pop();
}
else{
q_possible = false;
}
}
else{
q_possible = false;
}
}
}
}
count = 0;
if(s_possible)
count ++;
if(pq_possible)
count ++;
if(q_possible)
count ++;
if(count >= 2){
printf("not sure\n");
}
else{
if(count == 0){
printf("impossible\n");
}
else{
if(s_possible){
printf("stack\n");
}
if(pq_possible){
printf("priority queue\n");
}
if(q_possible){
printf("queue\n");
}
}
}
}
return 0;
}
#include <stdio.h>
#include <stack>
#include <queue>
using namespace std;
int main(void){
int n, i;
int oper, data;
queue<int> q;
priority_queue<int> pq;
stack<int> s;
bool pq_possible, q_possible, s_possible;
int count;
//freopen("input.dat", "r", stdin);
while(scanf("%d",&n) != EOF){
while(!s.empty()) s.pop();
while(!pq.empty()) pq.pop();
while(!q.empty()) q.pop();
pq_possible = q_possible = s_possible = true;
for(i=1; i<=n; i++){
scanf("%d %d", &oper, &data);
if(1 == oper){
if(s_possible)
s.push(data);
if(q_possible)
q.push(data);
if(pq_possible)
pq.push(data);
}
else{
if(s_possible){
if(!s.empty()){
if(s.top() == data){
s.pop();
}
else{
s_possible = false;
}
}
else{
s_possible = false;
}
}
if(pq_possible){
if(!pq.empty()){
if(pq.top() == data){
pq.pop();
}
else{
pq_possible = false;
}
}
else{
pq_possible = false;
}
}
if(q_possible){
if(!q.empty()){
if(q.front() == data){
q.pop();
}
else{
q_possible = false;
}
}
else{
q_possible = false;
}
}
}
}
count = 0;
if(s_possible)
count ++;
if(pq_possible)
count ++;
if(q_possible)
count ++;
if(count >= 2){
printf("not sure\n");
}
else{
if(count == 0){
printf("impossible\n");
}
else{
if(s_possible){
printf("stack\n");
}
if(pq_possible){
printf("priority queue\n");
}
if(q_possible){
printf("queue\n");
}
}
}
}
return 0;
}
相关文章推荐
- UVA - 11995 I Can Guess the Data Structure!
- UVA 11995 I Can Guess the Data Structure!
- UVA-11995 I Can Guess the Data Structure!(STL:各容器的简单运用)
- UVA 11995 I Can Guess the Data Structure!
- UVA 11995 I Can Guess the Data Structure!
- UVa 11995 I Can Guess the Data Structure! (STL)
- uva 11995 I Can Guess the Data Structure!
- UVA 11995 I Can Guess the Data Structure!(ADT)
- uva 11995 I Can Guess the Data Structure!
- UVA 11995 - I Can Guess the Data Structure! (基本数据结构)
- I Can Guess the Data Structure! UVA11995
- UVa 11995 I Can Guess the Data Structure(优先队列)
- UVa 11995 I Can Guess the Data Structure!
- uva——11995——I Can Guess the Data Structure!
- uva 11995 I Can Guess the Data Structure! (STL的简单应用)
- UVa 11995 I Can Guess the Data Structure!
- Uva-11995-I Can Guess the Data Structure!
- UVA 11995 I Can Guess the Data Structure! (STL的应用)
- uva 11995 I Can Guess the Data Structure!
- uva 11995 - I Can Guess the Data Structure!(STL应用)