【CYH-02】NOIp考砸后虐题赛:坐标:题解
2024-08-31 22:43:05
代码:
这道题也并不难,用排序+简单动规即可。因为@Kevin_Wa 大佬放的是c++,所以我来一发Pascal。
var min,max,i,a1,b1,c1,d1,n:longint;
a,b,c,d:array[0..500000] of int64;
procedure sort(l,r: longint);
var i,j,x,y,y1,y2,y3:longint;
begin
i:=l;j:=r;x:=a[(l+r) div 2];y1:=b[(l+r) div 2];
y2:=c[(l+r) div 2];y3:=d[(l+r) div 2];
repeat
while (a[i]<x)or((a[i]=x)and(b[i]<y1))or((a[i]=x)and(b[i]=y1)and(c[i]<y2))
or((a[i]=x)and(b[i]=y1)and(c[i]=y2)and(d[i]<y3)) do inc(i);
while (x<a[j])or((x=a[j])and(y1<b[j]))or((x=a[j])and(y1=b[j])and(y2<c[j]))
or((x=a[j])and(y1=b[j])and(y2=c[j])and(y3<d[j])) do dec(j);
if not(i>j) then
begin
y:=a[i];a[i]:=a[j];a[j]:=y;
y:=b[i];b[i]:=b[j];b[j]:=y;
y:=c[i];c[i]:=c[j];c[j]:=y;
y:=d[i];d[i]:=d[j];d[j]:=y;
inc(i);j:=j-1;
end;
until i>j;
if l<j then sort(l,j);
if i<r then sort(i,r);
end;
begin
readln(n);
for i:=1 to n do
begin
read(a1,b1,c1,d1);
a[i]:=b1-a1;b[i]:=c1-a1;c[i]:=d1-a1;
d[i]:=i;
end;
sort(1,n);
min:=maxlongint;
max:=-maxlongint;
for i:=2 to n do
if (a[i]=a[i-1])and(b[i]=b[i-1])and(c[i]=c[i-1]) then
begin
if (d[i]-d[i-1]<min) then min:=d[i]-d[i-1];
if (d[i]+d[i-1]>max) then max:=d[i]+d[i-1];
end;
writeln(min,' ',max);
close(input);close(output);
end.
最新文章
- fhq treap最终模板
- 周六搞事情,微信小程序开发文档已放出!
- BlockCanary 一个轻量的,非侵入式的性能监控组件(阿里)
- Xamarin.Android提示找不到mono.Android.Support.v4
- 过滤DataTable中的空数据
- Laravel5 cookie和session设置
- 如何写angularJS模块
- 『安全工具』注入神器SQLMAP
- Android实现获取本机中所有图片
- EntityFramework sum嵌套
- js 控制台的错误提示
- tcpip第三章
- 掷骰子DApp的实现
- Filter的使用(web作业)
- 《CSAPP》虚拟存储器
- C - 数字配对 (网络流 最大费用最大流)
- phpStorm中Structure窗口中的符号代表的意思
- 【转】Currying 的局限性
- PHP基于Sphinx+Swcs中文分词的全文的检索
- C# 请求Https
热门文章
- Linux可以把vmdk当做磁盘加载进去
- 高斯判别分析模型( Gaussian discriminant analysis)及Python实现
- xe5 for android 地理定位GPS
- [2017.02.23] Java8 函数式编程
- Ionic Framework 4 介绍
- java集合框架collection(5)HashMap和TreeMap
- 如何使用Vue.js来搭建一个后台管理系统
- 缩放手势 ScaleGestureDetector 源码解析,这一篇就够了
- git日常使用整理
- 系统学习 Java IO (十二)----数据流和对象流