paste bin
Author
Language
C++
Plain text
Accesslog
Action script
Ada
Apache
Arduino
Armasm
Autohotkey
Awk
Bash
Basic
Brainfuck
C
Clojure
Cmake
C#
css
D
Delphi
Dockerfile
Erlang
Fortran
F#
Gauss
Go
Gradle
Graphql
Groovy
Haskell
Ini
Java
JavaScript
json
Julia
Kotlin
Lasso
LaTeX
Leaf
lisp
llvm
Lua
Makefile
Markdown
Mathematica
Matlab
Nginx
Objective-C
Ocaml
Oxygene
Perl
PgSQL
php
Powershell
Processing
Profile
Properties
Puppet
Purebasic
Python
Q
QML
R
Ruby
Rust
Scala
Scheme
Scilab
Shell
Smalltalk
SQL
Swift
Typescript
VB.NET
VB Script
Verilog
Vim
Wasm
x86asm
Xml
Xquery
Yaml
source code:
#include <cstdio> #include <vector> #include <algorithm> using std::abs; struct plugs { int x,y; int distToNext; int distToOrigin; bool operator<(const plugs &b) const { return distToOrigin<b.distToOrigin; } }; int main(void) { std::vector<plugs> s; int i,x,y,N,M,K; plugs *p; p=(plugs*)malloc(sizeof(plugs)); scanf("%d%d%d",&N,&M,&K); for(i=0;i<M;i++) { scanf("%d%d",&x,&y); p->x=x; p->y=y; p->distToNext=0; if (y==0 && 0<=x && x<N) p->distToOrigin=x; else if ( x==N && 0<y && y<=N) p->distToOrigin=N+y; else if ( y==N && 0<x && x<=N) p->distToOrigin=3*N-x; else p->distToOrigin=4*N-y; s.push_back(*p); } std::sort(s.begin(),s.end()); p->distToOrigin=s[0].distToOrigin+4*N; s.push_back(*p); for(i=0;i<M;i++) s[i].distToNext=s[i+1].distToOrigin-s[i].distToOrigin; int tmpSum=0,minVal=0x7FFFFFFF; K--; for(i=0;i<K;i++) { tmpSum+=s[i].distToNext; } for(i=0;i<M;i++) { tmpSum=tmpSum+s[(i+K)%M].distToNext-s[i].distToNext; if(tmpSum<minVal) minVal=tmpSum; } printf("%d\n",minVal); delete p; return 0; }
comment: