Show all threads Hide all threads Show all messages Hide all messages |
how to easily solve this problem | 👑TIMOFEY👑`~ | 1759. Long-Livers | 30 Aug 2023 10:49 | 1 |
|
WA 10 | Combatcook | 1759. Long-Livers | 17 Aug 2016 18:40 | 1 |
WA 10 Combatcook 17 Aug 2016 18:40 No subject Edited by author 13.12.2017 23:34 |
WA | SamGTU5_Ukhova_Yulia_Alexandrovna | 1759. Long-Livers | 12 Jun 2013 01:20 | 1 |
WA SamGTU5_Ukhova_Yulia_Alexandrovna 12 Jun 2013 01:20 help please, send a working code to this task on с++ on mail juliauhova@mail.ru. I will be very grateful. Edited by author 12.06.2013 01:24 |
No subject | tt123753 | 1759. Long-Livers | 2 Oct 2012 18:30 | 3 |
#include <iostream> #include <cstring> #include <algorithm> using namespace std; struct Date { int day;
int month;
int year; }; struct person { int num;
int live;
Date die; }; bool comp(person a, person b) { if (a.live != b.live) return a.live > b.live; if (a.die.year != b.die.year) return a.die.year < b.die.year; if (a.die.month != b.die.month) return a.die.month < b.die.month; if (a.die.day != b.die.day) return a.die.day < b.die.day; } bool leap(int year) { if (year%400==0) return 1; if (year%100==0) return 0; if (year%4==0) return 1; else return 0; } int monthDay(int year, int month) { if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) return 31;
else if (month == 4 || month == 6|| month == 9 || month == 11) return 30;
else if (leap(year))return 29;
else return 28; } int Distance(Date a, Date b)//a??¨®¨²b o??e¨º?¨®????1¨¨??¨² { int dis = 0;
for (int i = a.year+1; i < b.year; ++i) { if (leap(i)) dis += 366;
else dis += 365; }
if (a.year != b.year) { for (int i = a.month+1; i <= 12; ++i) { dis += monthDay(a.year, i); }
dis += (monthDay(a.year, a.month) - a.day + 1); for (int i = 1; i < b.month; ++i) { dis += monthDay(b.year, i); }
dis += b.day; } else { if (a.month != b.month) { dis += (monthDay(a.year, a.month) - a.day + 1);cout << monthDay(a.year, a.month) << endl;
for (int i = a.month+1; i < b.month; ++i) { dis += monthDay(b.year, i); }
dis += b.day; } else { dis += (b.day - a.day + 1); } }
return dis; } int convert(char a, char b) { return (a - '0')*10 + b - '0'; } int convert(char a, char b, char c, char d) { return (a - '0')*1000 + (b - '0')*100 + (c - '0')*10 + d - '0'; } void print(Date a) { cout << a.year << " " << a.month << " " << a.day << endl; } int main() { int m;
cin >> m;
char useless[11];
Date a, b;
person p[101];
for (int i = 0; i < m; ++i) { scanf("%d.%d.%d", &a.day, &a.month, &a.year);
cin >> useless;
scanf("%d.%d.%d", &b.day, &b.month, &b.year);
p[i].num = i+1; p[i].live = Distance(a, b);
p[i].die = b; }
sort(p, p+m, comp);
cout << p[0].num << endl;
system("pause"); } I don't know why it always gets wrong answer; i know………… it's my fault... because i cout more sth. |
WA#3 | alp | 1759. Long-Livers | 17 Sep 2012 17:46 | 2 |
WA#3 alp 12 May 2010 13:33 try this test 2 11.02.2000 12.02.2000 11.02.2001 09.02.2001 11.02.2001 10.02.2002 ----------- 1 |
WA 8, pleae give test! | Vasily Slesarev | 1759. Long-Livers | 17 Sep 2012 17:32 | 3 |
Now AC, I had stupid mistake. |
wa#14 WHO CAN HELP ME??? PLEASE GUYS!!! | New York Team | 1759. Long-Livers | 4 Aug 2012 13:37 | 1 |
Edited by author 04.08.2012 18:24 |
WA19: using java's Date to calculate time difference is a mistake - it calculates it in not trivial way | messir | 1759. Long-Livers | 26 Apr 2012 12:00 | 3 |
I also had WA 19. There are some tricks to get AC in Java using java.util.Date. Take your tambourine and let's go! 1. Divide milliseconds count by 24*60*60*1000. 2. January's index is 0, not 1. 3. Use, for example, year-1500 instead of year. 4. Use Date's deprecated constructor. You don't have to care about all those details. Use GregorianCalendar it will take care everything for you. |
Wa#16 who can help me to find my bug?.Here is my program,thanks. | Hrayr | 1759. Long-Livers | 30 Nov 2011 02:03 | 2 |
#include <iostream> #include <cstring> #include <fstream> #include <string> using namespace std; char ch[20]; int x[200]; struct data { int d,m,y; }; struct mas { data d1,d2,d3; }; mas a[200]; int n; void work(int i,int t) { char day[10]; char month[10]; char year[15]; day[0]=ch[0]; day[1]=ch[1]; month[0]=ch[3]; month[1]=ch[4]; year[0]=ch[6]; year[1]=ch[7]; year[2]=ch[8]; year[3]=ch[9]; if (t==1) { a[i].d1.d=atoi(day); a[i].d1.m=atoi(month); a[i].d1.y=atoi(year); } else if (t==2) { a[i].d2.d=atoi(day); a[i].d2.m=atoi(month); a[i].d2.y=atoi(year); } else { a[i].d3.d=atoi(day); a[i].d3.m=atoi(month); a[i].d3.y=atoi(year); } } bool nahanj(int year) // this checks if the year has 366 or 365 days { if (year%400==0) return 1; if (year%100==0) return 0; if (year%4==0) return 1; else return 0; } int get_year(int year) // this returns how many days has the year { if (nahanj(year)) return 366; return 355; } int get_month(int a,int year) // this returns how many days has the month { if (a==4 || a==6 || a==9 || a==11) return 30; if (a==2 && nahanj(year)) return 29; if (a==2 && !nahanj(year)) return 28; else return 31; } int get_life(int i0) // and this returns how many year lived the person { int i; int sum1(0),sum2(0),sum(0); for(i=1700;i<a[i0].d1.y;i++) sum1+=get_year(i); for(i=1;i<a[i0].d1.m;i++) sum1+=get_month(i,a[i0].d1.y); sum1+=a[i0].d1.d; for(i=1700;i<a[i0].d3.y;i++) sum2+=get_year(i); for(i=1;i<a[i0].d3.m;i++) sum2+=get_month(i,a[i0].d3.y); sum2+=a[i0].d3.d; sum=sum2-sum1; return sum; } int main() { //ifstream cin("input.txt"); int i,m(-1),pos(-1); cin>>n; for(i=0;i<n;i++) { cin>>ch; work(i,1); cin>>ch; work(i,2); cin>>ch; work(i,3); } for(i=0;i<n;i++) x[i]=get_life(i); for(i=0;i<n;i++) { if (x[i]>m) { m=x[i]; pos=i; } } cout<<pos+1<<endl; return 0; }
Edited by author 01.07.2011 19:17 Just trip: scanf( "%ld.%ld.%ld", &d, &m, &y ); |
Hi,i want to know if the ACed program uses d2. | Hrayr | 1759. Long-Livers | 30 Nov 2011 02:02 | 2 |
No. This is unnecessary information. |
Is d2 redundant? | Vitalii Arbuzov | 1759. Long-Livers | 24 Mar 2011 13:44 | 1 |
Can't understand why we need date starting from which person was the oldest. Also can't understand why this solution gets WA3. Can anyone help? import java.util.GregorianCalendar; import java.util.Scanner; public class P1759 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = Integer.valueOf(scanner.nextLine()); GregorianCalendar birth = (GregorianCalendar) GregorianCalendar.getInstance(); GregorianCalendar death = (GregorianCalendar) GregorianCalendar.getInstance(); long max = 0; int result = 0; long longestLiveDeath = 0; for (int i = 0; i < n; i++) { String[] dates = scanner.nextLine().split("\\s"); set(birth, dates[0]); set(death, dates[2]); long liveTime = death.getTimeInMillis() - birth.getTimeInMillis(); if (liveTime > max || (liveTime == max && death.getTimeInMillis() < longestLiveDeath)) { max = liveTime; longestLiveDeath = death.getTimeInMillis(); result = i; } } System.out.println(result + 1); } private static void set(GregorianCalendar date, String sDate) { String[] split = sDate.split("\\."); date.set(Integer.valueOf(split[2]), Integer.valueOf(split[1]), Integer.valueOf(split[0])); } } Edited by author 24.03.2011 13:45 |
This is time for pascal ;-) | [SESC USU] Efanov N. | 1759. Long-Livers | 9 Sep 2010 23:54 | 1 |
Pascal's type TDateTime (module SysUtils) allow decide this problem in 10 strings. |
Format input | alp | 1759. Long-Livers | 12 May 2010 13:32 | 2 |
Always format input is dd.mm.yyyy dd.mm.yyyy dd.mm.yyyy dd.mm.yyyy dd.mm.yyyy dd.mm.yyyy or may be (for example) 2 dd.mm.yyyy dd.mm.yyyy dd.mm.yyyy dd.mm.yyyy dd.mm.yyyy dd.mm.yyyy ? Edited by author 09.05.2010 02:02 Format is dd.mm.yyyy dd.mm.yyyy dd.mm.yyyy dd.mm.yyyy dd.mm.yyyy dd.mm.yyyy |
6 test | Ilmir Tazetdinov [IATE] | 1759. Long-Livers | 8 Apr 2010 11:32 | 2 |
6 test Ilmir Tazetdinov [IATE] 20 Mar 2010 15:03 Give my please 6 test Edited by author 20.03.2010 15:04 I used class DataTime And no problem :) |