Common BoardShow all threads Hide all threads Show all messages Hide all messages | little asvice (no spoilers) | bstu_student | 1654. Cipher Message | 9 Aug 2018 09:09 | 1 | char[200001] gives perfect time if you will check repeats while string is inputting | use printf() instead of cout and string instead of char if you use c++ stl | Haloom | 1654. Cipher Message | 9 Aug 2018 09:08 | 2 | i used deque. cout got me TLE.using printf save me. if(st.front()!=s[i]) { st.emplace_front(s[i]); } else st.pop_front();
for(it=st.end()-1; it>=st.begin(); it--) { printf("%c",*it); } i say more - it's better don't use stl-containers if it's possible. char[200001] gives perfect time | Why my code doesn't work with c++ 'sort' ? But it works fine with stable_sort o_O | sirius_lyra | 1100. Final Standings | 9 Aug 2018 06:09 | 3 | /* * @Author: eleven * @Date: 2017-05-21 02:50:38 * @Last Modified by: eleven * @Last Modified time: 2018-02-09 14:49:14 */ // Status : AC ( works with stable_sort ) // doesn't works with sort #include <bits/stdc++.h> using namespace std; #define SIZE 150005 struct team{ int id; int solved; }teams[SIZE]; bool foo(team lhs, team rhs){ return lhs.solved > rhs.solved; } void print(int n ){ for(int i= 0; i<n ; ++i){ cout<<teams[i].id<<" "<<teams[i].solved<<'\n'; } } int main(){ //freopen("in","r",stdin); //freopen("out","w",stdout); int n ; cin>>n; for(int i = 0; i<n ; ++i){ cin>>teams[i].id>>teams[i].solved; } stable_sort(teams,teams+n ,foo); print(n); return 0; } I don't know why, but i have tha same problem. WA with sort, AC with stable_sort *go to read faq's* #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <algorithm> using namespace std; pair <int, int> a[150000]; int n; bool comp(pair <int, int> a, pair <int, int> b) { return a.first > b.first; } int main() { scanf("%d", &n); for (int i = 0; i < n; i++) scanf("%d%d", &a[i].second, &a[i].first); stable_sort(a, a + n, comp); //sort(a, a+n,comp); for (int i=0;i<n;i++) printf("%d %d\n", a[i].second, a[i].first); return 0; } OK, i've found yhe answere - stable_sort keeps the relative order berween equal elements... because this is stable sort)) | C++ 11 STL AC | coldwind | 1545. Hieroglyphs | 8 Aug 2018 14:28 | 1 | #include<iostream> #include<string> #include<map> #include<set> using namespace std; int main(){ map<char,set<string>> dic; string w; int n; cin>>n; while(--n>=0){ cin>>w; dic[w[0]].insert(w); } char c; cin>>c; for(auto s:dic[c]) cout<<s<<endl; } | See If you are getting WA 7 | Ashish Nimbalkar | 1203. Scientific Conference | 7 Aug 2018 14:30 | 1 | If you are using DP, make sure you are using multimap instead of map ( In c++ )
| Ideas for #41 | bstu_student | 1682. Crazy Professor | 7 Aug 2018 14:16 | 3 | Does anyon know, what is the longest test? I check a couple of numbers,with k= 99998 execution was the longest, but i'm not sure. UPD: I check (write k=99998 instead a reading number), and if WA#1 said truth, i reach the answere in 0,71. But this decision is still have TLE#41 :( Maybe, there is a harder 'k' for this task? Edited by author 07.08.2018 11:17 Edited by author 07.08.2018 11:17 You can try to binary search the test case. Put somewhere in your program the following if (clock() >= 0.9 * CLOCK_PER_SEC) { assert(K <= BINARY_SEARCH_MIDDLE); } You need to include <cassert> and <ctime> for these to work. Now (double)clock() / CLOCK_PER_SEC gives you program execution time in seconds. clock() >= 0.9 * CLOCK_PER_SEC checks that your program runs more than 0.9 seconds, in other words, approaching TL of 1s. This 'if' allows to execute code that will probably work only on 41th test case. assert( boolean expression ); exits with non-zero value if condition is not met. You could also do if (K <= BINARY_SEARCH_MIDDLE) { exit(your favourite non-zero number); } So, you can start with assert(K <= 100000 / 2) and so on. If you program fails on 41th test with RE instead of TL you change the bin search value. | why is my code not accepted? Visual C | Niloy | 1820. Ural Steaks | 6 Aug 2018 21:53 | 2 | i am doing (n%k)+(n/k) after putting restriction on k(k<=1000) and n(n>=1). but my answer is said to be wrong.please help. Edited by author 30.06.2013 01:11 14%4 +14/4=2+3=5 but ans is 4. every pancake has 2 sides so 13 pancake has 26 sides.pan fry can fry 4 pancakes at one minute one side. so, IF(2*13%4>=1) sum=((2*n)/k)+1; else{ sum=(2*n)/k; } calculate it . | No subject | a2ch | 1617. Flat Spots | 6 Aug 2018 18:22 | 1 | "Some tram drivers are fans of fast driving, and they damage both rails and their trams. If a tram accelerates to a high speed, say 80 kilometers per hour, and then brakes sharply before a stop, it goes some distance skidding." Is this "initial D" reference?! Edited by author 19.08.2018 20:53 | WA#25 | die_young | 1754. Explosion in a Pyramid | 6 Aug 2018 17:56 | 1 | WA#25 die_young 6 Aug 2018 17:56 Had problem with 25th test because of integer overflow. My program used int64_t which was not enough with my approach. Casting computations to double hepled me. | Mistake in English statement? | mouse_wireless2 | 1117. Hierarchy | 6 Aug 2018 11:30 | 2 | The statement says "The number of intermediate levels of employees between an arbitrary employee who has subordinates (an ordinary employee) and the employee who has no superiors (the main superior) is the same for all ordinary employees." However, in the first paragraph, it says that "ordinary employee" means an employee who has NO subordinates. Therefore, I think the statement should say: "The number of intermediate levels of employees between an arbitrary employee who has NO subordinates (an ordinary employee) and the employee who has no superiors (the main superior) is the same for all ordinary employees." I looked at the Russian version of the statement with google translate and that seems to be the case. There is also no mention in the statement that the structure is that of a SINGLE tree (and not a forest), but the answer seems to assume this. The statement only says that each employee has "not more than one direct superior", therefore one can understand that it is possible, for example, that no employee has a direct superior (and therefore the structure is a forest of single-node trees). | DELETED | die_young | 2086. Find Denis | 5 Aug 2018 22:37 | 1 | Edited by author 06.08.2018 11:30 | I long time try, and found this formula: | xurshid_n | 1475. Ryaba Hen | 5 Aug 2018 12:45 | 6 | 4*h * n ( n + 1 ) > H minimal n - is answer!
but I doubt, that this is correct. It's correct or not? v0*t*sin(theta)+0.5*g*sin(theta)*t^2 *n>=sqrt(H*H+l*l) v0=sqrt(2*g*h) t=2*v0/g tan(theta)=H/l. seems to be correct PS. this problem is too simple.. Edited by author 12.10.2017 06:25 Edited by author 12.10.2017 06:40 the correct formula is 4*h*n*(n+1)>(H*H+l*l)/H Maybe provide some explanation Oh Your previous comment is the explanation Let O=(l,H), A=(0,0), B=(l,0). System of coordinates: OX=AO, OY = BO rotate on teta (teta=arctan(H/l)). Then: vx(t) = (v+gt)*sin(teta) vy(t) = (v-gt)*cos(teta) x(t) = V*sin(teta)+g*sin(teta)*(t^2)/2 y(t) = V*cos(teta)-g*cos(teta)*(t^2)/2 First point: (l, H) => x=0, y=0 Second point: y(t)=0 <=> t=2*v/g x(2*v/g) = 4*(V^2)*sin(teta)/g = d = 8 * h * sin(teta) (mg(H+h)=mgH+m*(V^2)/2) x = d, y = 0 Distance between First point and Second point = d Distance between Second point and Third point = 2*d ... Distance between i point and i+1 point = i*d If n = answer => d+2d+3d+...+(n-1)d<=sqrt(H^2 + l^2) d+2d+3d+...+(n-1)d+nd>sqrt(H^2 + l^2) Edited by author 05.08.2018 12:52 | why wrong ans? | Azad | | 5 Aug 2018 11:48 | 1 | #include<stdio.h> int main() { int n,m,sum; scanf("%d \t %d", &n ,&m); if(n<=4000 && m<=4000){ sum=n*(m+1); printf("%d",sum); } return 0; } | Why?! | Anny Kyort | 1872. Spacious Office | 5 Aug 2018 04:58 | 2 | Why?! Anny Kyort 11 Oct 2014 19:48 | Is it solvable without long arithmetic? | Lomir | 1547. Password Search | 5 Aug 2018 03:53 | 5 | I Solved it with java BigInteger. Is there any solutions without long arifmetic? Only with java BigInteger :) Even if you manage to operate with letters directly, your code will turn into some weird base-26/27 long arithmetics with those letters as digits. I'm solve it with long arithmetics on C++ | Можно ли решить задачу без длинной арифметики? | pizdec | 2086. Find Denis | 4 Aug 2018 23:26 | 1 | Ура! Решил с длинной арифметикой. eps = 0.0000000000000000000000000000000000000000000000000000000000000000001 Задача геометрически простая, но реализация в целой арифметике неприятная (ответ всё равно будет вещественный, но алгоритм можно сделать абсолютно точным при сравнении точек). Лучше использовать длинную вещественную арифметику. Edited by author 06.08.2018 12:36 | O(V^3) - OK in C++ , tl4 in Java ... | Martin_fmi | 1421. Credit Operations | 4 Aug 2018 20:21 | 4 | The same algo gives tl 4 in java ... In C++ I use vector of vectors for the capacity matrix as well as in java and the input is with the Scanner class . How can I optimize ? Thanks in advance. Did you read the FAQ (Frequently Asked Questions) ? I have TLE4 in pascal! why? I don't know. Using C++ and good old Dinic you can get 0.015ms. Actually, you can perform greedy initialization in linear time (of matrix size) and get AC with most suboptimal flow algorithms. | checker | ASK | 1659. Regular Triangles | 4 Aug 2018 14:51 | 2 | #!python3 s = """0 30 -25.9807621135 -15 25.9807621135 -15 3.711537444785714 10.714285714285715 -11.134612334357143 -2.142857142857144 7.423074889571431 -8.571428571428571 18.557687223928568 23.57142857142857 -29.69229955828571 4.285714285714285 11.134612334357145 -27.857142857142854""" import matplotlib.pyplot as plt from math import cos, sin, pi fig = plt.figure() ax = fig.add_subplot(111,aspect='equal') r=[[float(a) for a in p.split()] for p in s.split("\n")] def d(a,b): return (r[a][0]-r[b][0])**2 + (r[a][1]-r[b][1])**2 def z(a,b): return abs(a-b) < 1e-6 a = 0 for i in range(len(r)): for j in range(i+1,len(r)): for k in range(j+1,len(r)): if z(d(i,j),d(i,k)) and z(d(i,j),d(j,k)) and z(d(j,k),d(i,k)): a += 1 x = [r[t][0] + 0.5*cos(2*pi*a/9) for t in (i,j,k,i)] y = [r[t][1] + 0.5*sin(2*pi*a/9) for t in (i,j,k,i)] plt.plot(x, y, '-') for p in r: plt.plot(p[0],p[1],'bo') plt.grid() plt.show() print(a) | Why my program wrong in 4 test? give some tests!!! help plz (s menya pivo) | Tolstobrov_Anatoliy[Ivanovo SPU] | 1094. E-screen | 4 Aug 2018 10:08 | 7 | var s:string; m:array[-50000..50000]of char; i,min,max,u:longint; begin readln(s); u:=0;min:=90001;max:=-90001; for i:=1 to length(s) do begin if s[i]='<' then dec(u); if u<1 then u:=1; if s[i]='>' then inc(u); if (s[i]<>'>')and(s[i]<>'<') then begin m[u]:=s[i]; if min>u then min:=u; if max<u then max:=u; inc(u); end; end; for i:=min to max do write(m[i]); end. The length of the screen is 80 symbols! man give test plz. With my mistake! Here is a piece of code: ........................................... s, res: string; p, i: integer; readln(s); res:= ''; for i:=1 to 80 do res:= res+' '; p:= 1; for i:=1 to length(s) do begin if s[i]='<' then begin dec(p); if p<1 then p:=1; end else if s[i]='>' then begin inc(p); if p>80 then p:=1; end else begin res[p]:= s[i]; inc(p); if p>80 then p:=1; end; end; write(res); ............................................... Something like that will give U AC. I'm not sure, but I think it is because signs are "(:;-!?.,)" 1) Use a line long 80 2) Read out symbols In my case, the problem was that after writing char out I didn't wrap the cursor back to the beginning. | WHAT'S TEST 7? | invokerj | 1114. Boxes | 4 Aug 2018 05:40 | 3 | can't pass TEST#7, just can't,,,, Answer is 10549134770590785600 ;-) |
|
|