UVA 11995 - I Can Guess the Data Structure!
//11995 - I Can Guess the Data Structure!
/*題意:給出輸入輸出數(shù)據(jù)判斷是那種數(shù)據(jù)結(jié)構(gòu)
一種都沒(méi)有 impossible
可能是兩三種 not ture
只一種 棧 隊(duì)列 優(yōu)先隊(duì)列
*///AC關(guān)鍵 :使用bool 函數(shù) ----三個(gè)函數(shù)何時(shí)判斷為fales
#include<cstdio>
#include<stack>
#include<queue>
using namespace std;
int n;
int d[1010],p[1010];
bool istack()
{
stack<int>s;
for(int i=0;i<n;i++)
{
if(d[i]==1)s.push(p[i]);//
else //if(aa[i]==2)
{
if(s.empty()) return 0;
int val;
val=s.top();s.pop();
if(p[i]!=val)
return 0;
}
}
return 1;
}
bool iqueue()
{
queue<int>s;
for(int i=0;i<n;i++)
{
if(d[i]==1)s.push(p[i]);
else
{
if(s.empty())return 0;
int val;
val=s.front();s.pop();
if(p[i]!=val)return 0;
}
}return 1;
}
bool iprio()
{
priority_queue<int > s;
for(int i=0;i<n;i++)
{
if(d[i]==1)s.push(p[i]);
else
{
if(s.empty())return 0;
int val;
val=s.top();s.pop();
if(p[i]!=val)return 0;
}
}
return 1;
}
int main()
{
int i,j,k;
bool a,b,c;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
{
scanf("%d%d",&d[i],&p[i]);
}
a=b=c=0;
a=istack();b=iqueue();c=iprio();
if(!a&&!b&&!c)printf("impossible\n");
else if((!a&&b&&c)||(a&&!b&&c)||(a&&b&&!c)||(a&&b&&c))//兩種 或三種
printf("not sure\n");
else if(a)printf("stack\n");
else if(b)printf("queue\n");
else if(c)printf("priority queue\n");
}
return 0;
}
/*題意:給出輸入輸出數(shù)據(jù)判斷是那種數(shù)據(jù)結(jié)構(gòu)
一種都沒(méi)有 impossible
可能是兩三種 not ture
只一種 棧 隊(duì)列 優(yōu)先隊(duì)列
*///AC關(guān)鍵 :使用bool 函數(shù) ----三個(gè)函數(shù)何時(shí)判斷為fales
#include<cstdio>
#include<stack>
#include<queue>
using namespace std;
int n;
int d[1010],p[1010];
bool istack()
{
stack<int>s;
for(int i=0;i<n;i++)
{
if(d[i]==1)s.push(p[i]);//
else //if(aa[i]==2)
{
if(s.empty()) return 0;
int val;
val=s.top();s.pop();
if(p[i]!=val)
return 0;
}
}
return 1;
}
bool iqueue()
{
queue<int>s;
for(int i=0;i<n;i++)
{
if(d[i]==1)s.push(p[i]);
else
{
if(s.empty())return 0;
int val;
val=s.front();s.pop();
if(p[i]!=val)return 0;
}
}return 1;
}
bool iprio()
{
priority_queue<int > s;
for(int i=0;i<n;i++)
{
if(d[i]==1)s.push(p[i]);
else
{
if(s.empty())return 0;
int val;
val=s.top();s.pop();
if(p[i]!=val)return 0;
}
}
return 1;
}
int main()
{
int i,j,k;
bool a,b,c;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
{
scanf("%d%d",&d[i],&p[i]);
}
a=b=c=0;
a=istack();b=iqueue();c=iprio();
if(!a&&!b&&!c)printf("impossible\n");
else if((!a&&b&&c)||(a&&!b&&c)||(a&&b&&!c)||(a&&b&&c))//兩種 或三種
printf("not sure\n");
else if(a)printf("stack\n");
else if(b)printf("queue\n");
else if(c)printf("priority queue\n");
}
return 0;
}
posted on 2013-02-06 15:19 ACM_Someone like you 閱讀(313) 評(píng)論(0) 收藏 舉報(bào)
浙公網(wǎng)安備 33010602011771號(hào)