把c++程序翻译成pascal程序

#include<cstdio>#include<algorithm>#include<queue>usingnamespacestd;#defineinf1000000... #include<cstdio>
#include<algorithm>
#include<queue>
using namespace std;
#define inf 1000000000
#define maxn 200000
#define REP(i,n) for (int i=1;i<=n;++i)
#define REPD(i,n) for (int i=1;i>=1;--i)
priority_queue<int,vector<int> > s;
struct Node{
int x,y;
}a[maxn];
int n,k,t;
long long ans;
bool cmp(Node a,Node b)
{
return (a.x<b.x||(a.x==b.x &&a.y<b.y));
}

int main()
{
scanf("%d",&n);
REP(i,n)scanf("%d%d",&a[i].x,&a[i].y);
sort(a+1,a+n+1,cmp);
t=inf;k=n;
while(t)
{
while (s.size()>0 && t>a[k].x)
{
ans+=s.top();s.pop();
t--;
}
t=a[k].x;
while (k && t==a[k].x){ s.push(a[k].y);k--;}
}

printf("%lld\n",ans);
return 0;
}
展开
 我来答
仙悠焮3o
2014-07-20 · TA获得超过162个赞
知道小有建树答主
回答量:132
采纳率:50%
帮助的人:68.6万
展开全部
program wapiknow;var n,i,j,k,x,s:longint; a:array [0..10000] of char; c:char;begin read(n); for i:=0 to n-1 do a[i]:='?'; read(k); x:=0; while (k>0) do begin read(s,c); while (s>0) do begin inc(x); if (x=n) then x:=0; dec(s); end; if (a[x]<>'?')and(a[x]<>c) then begin writeln('!'); halt; end; a[x]:=c; dec(k); end; for i:=0 to n-1 do for j:=i+1 to n-1 do if (a[i]=a[j])and(a[i]<>'?') then begin writeln('!'); halt; end; for i:=0 to n-1 do begin write(a[x]); dec(x); if (x=-1) then x:=n-1; end; writeln;end.希望我的回答能帮到你
903541571
2014-07-31
知道答主
回答量:14
采纳率:0%
帮助的人:12.4万
展开全部
你这是c++ 用到了stl库中的优先队列 就是二叉堆 翻译成pascal很长 还不如用c++
更多追问追答
追问
可我不会c++呀。
我只会pascal。
麻烦大牛帮忙改成pascal。
谢谢!
追答
不是大牛 以大牛为目标 你的题目是什么?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-07-23
展开全部
#include<cstdio> #inclu...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式