Common Board| Show all threads Hide all threads Show all messages Hide all messages | | Hi, could the admin suggest what the string is appended in the beginning? Is it "RT @nick: " or "RT@nick: " or sth else? | zayhero | 1871. Seismic Waves | 15 Oct 2011 20:20 | 2 | Yes, ADMINS please confirm the correctness of the appended string | | No subject | Nicolay Protasov(Vologda ML) | 1777. Anindilyakwa | 15 Oct 2011 19:29 | 1 | No subject Nicolay Protasov(Vologda ML) 15 Oct 2011 19:29 Edited by author 29.10.2011 23:25 | | How many lines of code your solution? | pkl | 1049. Brave Balloonists | 15 Oct 2011 19:28 | 2 | I think, my solution is very tricky. It can be more simpler and smaller. How many lines of code your solution? | | Hint | Alexey Dergunov [Samara SAU] | 1871. Seismic Waves | 15 Oct 2011 18:29 | 1 | Hint Alexey Dergunov [Samara SAU] 15 Oct 2011 18:29 Note that FIRST PERSON IN THE INPUT sends a message first! | | The English version is different from the Russian version!!! Could admin rejudge it ??? | TrustMe | 1866. Poetic Foot | 15 Oct 2011 18:18 | 3 | This is totally not fair ! I didn't see any "not a poem" and no admin comes to clarify our confusion. This badly affect our timing and performance. Could you at least rejudge the submissions in the contest according to the English version Edited by author 15.10.2011 18:18 | | WA 3 | Zhandarbek | 1864. Get-Together at Den's | 15 Oct 2011 17:31 | 4 | WA 3 Zhandarbek 15 Oct 2011 17:08 Re: WA 3 George_Aloyan[PTSObninsk] 15 Oct 2011 17:15 Not all friends should get money from DAN Re: WA 3 George_Aloyan[PTSObninsk] 15 Oct 2011 17:31 And you should give them their money not thinking of ALL the liters someone brought, but of the liters he paid, but didn't drink. E.G. var k, i, s, n: longint; a: array[1..100] of longint; begin readln(n); for i :=1 to n do begin read(a[i]); s := s + a[i]; end; for i := 1 to n do begin write((a[i]*100) div s, ' '); end; end. - WA3 var k, i, s, n: longint; a: array[1..100] of longint; begin readln(n); for i :=1 to n do begin read(a[i]); s := s + a[i]; end; s := s div (n + 1); for i := 1 to n do a[i] := a[i] - s; s := 0; for i := 1 to n do if a[i] > 0 then s := s + a[i]; for i := 1 to n do begin if (a[i] > 0) then write((a[i]*100) div s, ' ') else write('0 '); end; end. - WA6. And then I came to WA 9) I've done some more mistakes, for example i must calculate real numbers, but i did everything with integer, but it is discussed in sime other topics Edited by author 15.10.2011 18:37 | | special cases | luckysundog | 1029. Ministry | 15 Oct 2011 17:13 | 1 | test #2: M==1 => read N numbers from and output index of minimal test #3: N==1 => output '1' M times | | Вопрос по задаче | GET 100000 | 1865. The Island of Märket | 15 Oct 2011 16:45 | 2 | Может ли после разделения западная часть принадлежать Финляндии, а восточная Швеции? | | Fast algo - modelling works!!! | Smilodon_am | 1494. Monobilliards | 15 Oct 2011 16:39 | 3 | My AC program uses algorithm with process modelling. It's complexity is O(N) in memory and time. Yes, this is the best algo. I use this too. If "process modelling" is for "linked list structure', then I can say the same. The algorithm is so trivial, that the previous sentence is already a sufficient hint. Edited by author 15.10.2011 16:40 | | what is the this case? | shahdza | 1864. Get-Together at Den's | 15 Oct 2011 15:35 | 3 | This is wrong input because sum of all a[i] must be > 0 | | kill me now!!! | shahdza | 1864. Get-Together at Den's | 15 Oct 2011 15:11 | 1 | | | WA#20 Help please | Darych | 1405. Goat in the Garden 5 | 15 Oct 2011 01:09 | 1 | I've got wrong answer on 20th test. Please could anybody give me some test, which will help? | | Why 1? | hatred | 1861. Graveyard in Deyja | 14 Oct 2011 21:20 | 2 | Why 1? hatred 14 Oct 2011 21:00 In 2 sample: Arch?????rchibaldIronfist Archibald but we can put Archibald from 1st position and from 9th position. Why answer is 1? Because it cannot appear on BOTH 1 and 9 positions. | | No subject | Дмитрий | | 14 Oct 2011 19:49 | 1 | Edited by author 14.10.2011 19:50 | | WA6 | Jumabek_Alihonov | 1510. Order | 14 Oct 2011 16:42 | 1 | WA6 Jumabek_Alihonov 14 Oct 2011 16:42 this is my solutioon please help me! #include <iostream> #include <stdio.h> using namespace std; long a[50001], sum=0; void merge(long,long,long); void merge_sort(long low,long high) { long mid; if(low<high) { mid=(low+high)/2; merge_sort(low,mid); merge_sort(mid+1,high); merge(low,mid,high); } } void merge(long low,long mid,long high) { long h,i,j,b[50001],k; h=low; i=low; j=mid+1; while((h<=mid)&&(j<=high)) { if(a[h]<=a[j]) { b[i]=a[h]; h++; } else { b[i]=a[j]; sum+=mid-h+1; j++; } i++; } if(h>mid) { for(k=j;k<=high;k++) { b[i]=a[k]; i++; } } else { for(k=h;k<=mid;k++) { b[i]=a[k]; i++; } } for(k=low;k<=high;k++) a[k]=b[k]; } int main(){
long num,i,a[50001];; cin>>num; for(i=1;i<=num;i++) { cin>>a[i] ; }if(num==1)cout<<a[1]; else{ merge_sort(1,num); cout<<a[num/2]; }return 0;} | | If you've get WA#9 try this: | Fly [Yaroslavl_SU] | 1245. Pictures | 14 Oct 2011 13:46 | 2 | 2 8 0 0 8 100 0 Answer: 11600 | | I think my program is right, but it get WA! | Grebnov Ilya[ISPU] | 1245. Pictures | 14 Oct 2011 13:40 | 6 | CONST BigNum = 31337; VAR N, I, J : LongInt; X, Y, R : ARRAY[1..1010] OF Extended; MinX, MaxX, MinY, MaxY, cX, cY : Extended; SMinX, SMaxX, SMinY, SMaxY, Best, Sum : Extended; LABEL L1, L2, L3, L4; BEGIN ReadLn(N); ReadLn(R[1], X[1], Y[1]); MinX := X[1]-R[1]; MaxX := X[1]+R[1]; MinY := Y[1]-R[1]; MaxY := Y[1]+R[1]; FOR I := 2 TO N DO BEGIN ReadLn(R[I], X[I], Y[I]); IF X[I]-R[I] < MinX THEN MinX := X[I]-R[I]; IF X[I]+R[I] > MaxX THEN MaxX := X[I]+R[I]; IF Y[I]-R[I] < MinY THEN MinY := Y[I]-R[I]; IF Y[I]+R[I] > MaxY THEN MaxY := Y[I]+R[I]; END; IF ((MaxX-MinX) <= 100) AND ((MaxY-MinY) <= 100) THEN BEGIN Write(100*100); Halt; END; SMaxX := MaxX; SMaxY := MaxY; SMinX := MinX; SMinY := MinY; IF (SMaxX-SMinX) < 100 THEN SMaxX := SMinX+100; IF (SMaxY-SMinY) < 100 THEN SMaxY := SMinY+100; Best := (SMaxX-SMinX)*(SMaxY-SMinY); FOR I := 1 TO N DO BEGIN cX := X[I]+R[I]; cY := Y[I]-R[I]; SMinX := +BigNum; SMaxX := -BigNum; SMinY := +BigNum; SMaxY := -BigNum; FOR J := 1 TO N DO BEGIN IF ((X[J]+R[J]) <= cX) AND (Y[J]-R[J] >= cY) THEN Continue; IF (X[J]-R[J] < cX) AND (Y[J]-R[J] >= cY) AND (X[J]+R[J] > cX) THEN GOTO L1; IF (X[J]+R[J] <= cX) AND (Y[J]+R[J] > cY) AND (Y[J]-R[J] < cY) THEN GOTO L1; IF X[J]-R[J] < SMinX THEN SMinX := X[J]-R[J]; IF X[J]+R[J] > SMaxX THEN SMaxX := X[J]+R[J]; IF Y[J]-R[J] < SMinY THEN SMinY := Y[J]-R[J]; IF Y[J]+R[J] > SMaxY THEN SMaxY := Y[J]+R[J]; END; IF SMinX = BigNum THEN Continue; IF (SMinX < cX) AND (SMaxY > cY) THEN Continue; IF (SMaxX-SMinX) < 100 THEN SMaxX := SMinX+100; IF (SMaxY-SMinY) < 100 THEN SMaxY := SMinY+100; IF (cX-MinX) < 100 THEN cX := MinX+100; IF (MaxY-cY) < 100 THEN cY := MaxY-100; Sum := (SMaxX-SMinX)*(SMaxY-SMinY)+(cX-MinX)*(MaxY-cY); IF (Best > Sum) THEN Best := Sum; L1: END; FOR I := 1 TO N DO BEGIN cX := X[I]+R[I]; cY := Y[I]+R[I]; SMinX := +BigNum; SMaxX := -BigNum; SMinY := +BigNum; SMaxY := -BigNum; FOR J := 1 TO N DO BEGIN IF ((X[J]+R[J]) <= cX) AND (Y[J]+R[J] <= cY) THEN Continue; IF (X[J]-R[J] < cX) AND (Y[J]+R[J] <= cY) AND (X[J]+R[J] > cX) THEN GOTO L2; IF (X[J]+R[J] <= cX) AND (Y[J]+R[J] > cY) AND (Y[J]-R[J] < cY) THEN GOTO L2; IF X[J]-R[J] < SMinX THEN SMinX := X[J]-R[J]; IF X[J]+R[J] > SMaxX THEN SMaxX := X[J]+R[J]; IF Y[J]-R[J] < SMinY THEN SMinY := Y[J]-R[J]; IF Y[J]+R[J] > SMaxY THEN SMaxY := Y[J]+R[J]; END; IF SMinX = BigNum THEN Continue; IF (SMinX < cX) AND (SMinY < cY) THEN Continue; IF (SMaxX-SMinX) < 100 THEN SMaxX := SMinX+100; IF (SMaxY-SMinY) < 100 THEN SMaxY := SMinY+100; IF (cX-MinX) < 100 THEN cX := MinX+100; IF (cY-MinY) < 100 THEN cY := MinY+100; Sum := (SMaxX-SMinX)*(SMaxY-SMinY)+(cX-MinX)*(cY-MinY); IF (Best > Sum) THEN Best := Sum; L2: END; FOR I := 1 TO N DO BEGIN cX := X[I]-R[I]; cY := Y[I]-R[I]; SMinX := +BigNum; SMaxX := -BigNum; SMinY := +BigNum; SMaxY := -BigNum; FOR J := 1 TO N DO BEGIN IF ((X[J]-R[J]) >= cX) AND (Y[J]-R[J] >= cY) THEN Continue; IF (X[J]-R[J] < cX) AND (Y[J]-R[J] >= cY) AND (X[J]+R[J] > cX) TH Try this: 5 200 200 400 100 400 600 100 500 300 100 900 100 200 900 600 The answer should be 620000, but your program writes 680000. P.S. Using GoTo is a new word in the technics of programming :) > Try this: > > 5 > 200 200 400 > 100 400 600 > 100 500 300 > 100 900 100 > 200 900 600 > > The answer should be 620000, but your program writes 680000. New version writes 620000, but it still Wrong! CONST BigNum = 31337; VAR N, I, J : LongInt; X, Y, R : ARRAY[1..1010] OF Extended; MinX, MaxX, MinY, MaxY, cX, cY : Extended; SMinX, SMaxX, SMinY, SMaxY, Best, Sum : Extended; LABEL L1, L2, L3, L4; BEGIN ReadLn(N); ReadLn(R[1], X[1], Y[1]); MinX := X[1]-R[1]; MaxX := X[1]+R[1]; MinY := Y[1]-R[1]; MaxY := Y[1]+R[1]; FOR I := 2 TO N DO BEGIN ReadLn(R[I], X[I], Y[I]); IF X[I]-R[I] < MinX THEN MinX := X[I]-R[I]; IF X[I]+R[I] > MaxX THEN MaxX := X[I]+R[I]; IF Y[I]-R[I] < MinY THEN MinY := Y[I]-R[I]; IF Y[I]+R[I] > MaxY THEN MaxY := Y[I]+R[I]; END; IF ((MaxX-MinX) <= 100) AND ((MaxY-MinY) <= 100) THEN BEGIN Write(100*100); Halt; END; SMaxX := MaxX; SMaxY := MaxY; SMinX := MinX; SMinY := MinY; IF (SMaxX-SMinX) < 100 THEN SMaxX := SMinX+100; IF (SMaxY-SMinY) < 100 THEN SMaxY := SMinY+100; Best := (SMaxX-SMinX)*(SMaxY-SMinY); FOR I := 1 TO N DO BEGIN cX := X[I]+R[I]; cY := Y[I]-R[I]; SMinX := +BigNum; SMaxX := -BigNum; SMinY := +BigNum; SMaxY := -BigNum; FOR J := 1 TO N DO BEGIN IF ((X[J]+R[J]) <= cX) AND (Y[J]-R[J] >= cY) THEN Continue; IF (X[J]-R[J] < cX) AND (Y[J]-R[J] >= cY) AND (X[J]+R[J] > cX) THEN GOTO L1; IF (X[J]+R[J] <= cX) AND (Y[J]+R[J] > cY) AND (Y[J]-R[J] < cY) THEN GOTO L1; IF X[J]-R[J] < SMinX THEN SMinX := X[J]-R[J]; IF X[J]+R[J] > SMaxX THEN SMaxX := X[J]+R[J]; IF Y[J]-R[J] < SMinY THEN SMinY := Y[J]-R[J]; IF Y[J]+R[J] > SMaxY THEN SMaxY := Y[J]+R[J]; END; IF SMinX = BigNum THEN Continue; IF (SMinX < cX) AND (SMaxY > cY) THEN Continue; IF (SMaxX-SMinX) < 100 THEN SMaxX := SMinX+100; IF (SMaxY-SMinY) < 100 THEN SMaxY := SMinY+100; IF (cX-MinX) < 100 THEN cX := MinX+100; IF (MaxY-cY) < 100 THEN cY := MaxY-100; Sum := (SMaxX-SMinX)*(SMaxY-SMinY)+(cX-MinX)*(MaxY-cY); IF (Best > Sum) THEN Best := Sum; L1: END; FOR I := 1 TO N DO BEGIN cX := X[I]+R[I]; cY := Y[I]+R[I]; SMinX := +BigNum; SMaxX := -BigNum; SMinY := +BigNum; SMaxY := -BigNum; FOR J := 1 TO N DO BEGIN IF ((X[J]+R[J]) <= cX) AND (Y[J]+R[J] <= cY) THEN Continue; IF (X[J]-R[J] < cX) AND (Y[J]+R[J] <= cY) AND (X[J]+R[J] > cX) THEN GOTO L2; IF (X[J]+R[J] <= cX) AND (Y[J]+R[J] > cY) AND (Y[J]-R[J] < cY) THEN GOTO L2; IF X[J]-R[J] < SMinX THEN SMinX := X[J]-R[J]; IF X[J]+R[J] > SMaxX THEN SMaxX := X[J]+R[J]; IF Y[J]-R[J] < SMinY THEN SMinY := Y[J]-R[J]; IF Y[J]+R[J] > SMaxY THEN SMaxY := Y[J]+R[J]; END; IF SMinX = BigNum THEN Continue; IF (SMinX < cX) AND (SMinY < cY) THEN Continue; IF (SMaxX-SMinX) < 100 THEN SMaxX := SMinX+100; IF (SMaxY-SMinY) < 100 THEN SMaxY := SMinY+100; IF (cX-MinX) < 100 THEN cX := MinX+100; IF (cY-MinY) < 100 THEN cY := MinY+100; Sum := (SMaxX-SMinX)*(SMaxY-SMinY)+(cX-MinX)*(cY-MinY); IF (Best > Sum) THEN Best := Sum; L2: END; FOR I := 1 TO N DO BEGIN cX := X[I]-R[I]; cY := Y[I]-R[I]; SMinX := +BigNum; SMaxX := -Big I think, that right answer for this test is 540000. Please, explain me, why it's wrong. My program gives 540000, and I have drew it on a paper. I think, that it's right... My program gives WA... My AC program output 620000
take care that one spot may cover another... | | Give some test to understand the condition please... | Roshka | 1740. Deer is Better! | 14 Oct 2011 02:15 | 3 | Дайте тест пожалуйста на котором можно понять условие задачи... 30 11 2 4 6 30 12 2 4 6 30 13 2 4 6 30 14 2 4 6 30 15 2 4 4 30 16 2 2 4 This is formal statement of task as I understand it: you are given a function v(t) (in fact this function is speed of deer at time t) and you know that: 1) it is non-negative and determined on interval [0..T] (T is unknown, you have to find it) 2) for each t0 : 0 <= t0 <= T - h, \int_{t0}^{t0+h} v(t) dt = k 3) \int_0^T v(t) dt = l So there is set of such functions, you have to find infimum and supremum of T among this set of functions. Edited by author 14.10.2011 02:17 | | Вопрос по примеру | LLd_team | 1779. The Great Team | 13 Oct 2011 22:41 | 8 | Разве для 4 студентов будет всего 2 пары? А чем не устраивает вариант: 3 1 2 2 3 1 4 Тогда 1 и 2 студенты имеют по 2 друга, а 3 и 4 по 1, что в свою очередь подходит под "крах критерия успеха". All three members of the team should have the same number of friends... The problem can has multiple correct answers. Edited by author 09.10.2010 14:50 Iosif inf-10 : Sən harda oxuyursan? Достаточно и любой одной пары друзей - у них будет по 1, у других по 0. я так понял нужно построить такой граф чтобы любые три вершины имели разную степень. а в условии сказано что решение можно вывести любое. LLd_team, такой вариант вполне пройдёт. Для удобства, можно составить на бумажке матрицу вида: 1 2 3 4 2 2 1 1 надеюсь, суть матрицы понятна ;) Собственно программно и нужно постоянно проверять количество людей с одинаковым количеством друзей и "не давать" этому количеству превышать 2 (эмпирически выяснили, что -1 в принципе может и никогда не вернуться). У меня всегда есть ответ)) Пусть кол-во друзей четно. Пусть мы уже добавили 2k друзей и их валентности 112233...kk. Давайте соединять 2 новые вершины с уже добавленными, начиная с тех, у кого большая валентность. Получим у новых вершин валентность 11, а у старых 1122..(k-1)(k-1)(k+1)(k+1). Продолжаем процесс пока не получим у новых mm, а у старых 112233...(m-1)(m-1)(m+1)(m+1)..(k+1)(k+1). Если получили, что на каком-то шаге у новых mm, а у старых 1122..(m)(m)(m+2)(m+2)..(k+1)(k+1), то соединяем новые между собой. Если n нечетно, последнюю вершину оставляем одной. Кол-во дуг в графе (n/2) * ((n/2) + 1) / 2. | | Please help me | sign_in158 | 1658. Sum of Digits | 13 Oct 2011 19:46 | 1 | Can anyone tell me how to use dynamic programming in this problem |
|
|