راستش خودم هنوز صورت سوال رو درست نفهمیدم. ولی فکر می کنم یه خورده سخت باشه به هر حال اگه فکر می کنید این سوال خیلی برای شروع خوب نیست . سوال پیشنهادی خودتون رو تا آخر امروز (یکشنبه)مطرح کنید تا از فردا رو برنامه کار کنیم.
source (البته به صورت pdf)
اول سعی کردم source رو اینجا بذارم .اما فرمتش کلا به هم ریخت . خلاصه مجبور شدم pdf ش کنم.
[FONT=F0][SIZE=2][COLOR=#0000ff]
[LEFT]#include [/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#7f0000]"stdio.h"[/LEFT]
[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#0000ff][LEFT]#include [/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#7f0000]"stdlib.h"[/LEFT]
[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#0000ff][LEFT]void [/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2]main()
{[/LEFT]
[/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#0000ff][LEFT]int [/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2]first,last,N;[/LEFT]
[/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#0000ff][LEFT]int [/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2]m;[/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#007f00]//m is a counter[/LEFT]
[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#0000ff][LEFT]int [/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2]index;
N=1;[/LEFT]
[/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#007f00][LEFT]////////////////////////////opening input &out put
files////////////////////////////////////////[/LEFT]
[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2][LEFT]FILE *fp1=fopen([/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#7f0000]"input.txt"[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2],[/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#7f0000]"r"[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2]);[/LEFT]
[/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#0000ff][LEFT]if[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2](!fp1)
{
printf([/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#7f0000]"input file wasnot opened"[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2]);[/LEFT]
[/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#0000ff][LEFT]return[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2];
}
FILE *fp2=fopen([/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#7f0000]"output.txt"[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2],[/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#7f0000]"w"[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2]);[/LEFT]
[/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#0000ff][LEFT]if[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2](!fp2)
{
printf([/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#7f0000]"output file wasnot opened"[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2]);[/LEFT]
[/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#0000ff][LEFT]return[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2];
}[/LEFT]
[/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#007f00][LEFT]/////////////////////////////////////////////////////////////////////
///////////////////////////[/LEFT]
[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#0000ff][LEFT]while[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2](1) [/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#007f00]//external loop[/LEFT]
[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2][LEFT]{
fscanf(fp1,[/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#7f0000]"%d"[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2],&N);[/LEFT]
[/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#0000ff][LEFT]if[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2](N==0) [/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#007f00]//condition for ending while loop[/LEFT]
[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#0000ff][LEFT]return[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2];
first=1;
last=N;
index=1;
m=1;[/LEFT]
[/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#0000ff][LEFT]while[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2](1) [/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#007f00]//internal loop[/LEFT]
[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2][LEFT]{[/LEFT]
[/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#0000ff][LEFT]if[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2](index==13)
{[/LEFT]
[/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#0000ff][LEFT]if[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2](first==last)
{
fprintf(fp2,[/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#7f0000]"%d\n"[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2],m); [/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#007f00]//it means 13 is a
last region(things that we want)[/LEFT]
[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#0000ff][LEFT]break[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2]; [/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#007f00]//exit from internal
loop and go to read the next input[/LEFT]
[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2][LEFT]}[/LEFT]
[/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#0000ff][LEFT]else [/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#007f00]//the m isn't what we
want[/LEFT]
[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2][LEFT]{
first=1;
index=1;
last=N;
m++; [/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#007f00]//test the next "m"[/LEFT]
[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2][LEFT]}
}[/LEFT]
[/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#0000ff][LEFT]else [/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#007f00]//index!=13[/LEFT]
[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2][LEFT]{[/LEFT]
[/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#0000ff][LEFT]if[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2](index<13 )
{
first++;
index+=m;
}[/LEFT]
[/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#0000ff][LEFT]else[/LEFT]
[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2][LEFT]{
last--;
index+=(m-1); [/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#007f00]//because by omiting from
the last, we loose one of the next numbers[/LEFT]
[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2][LEFT]}[/LEFT]
[/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#0000ff][LEFT]while[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2](index>last)
index=first+(index-last-1);
}
}
}[/LEFT]
[/SIZE][/FONT][FONT=F0][SIZE=2][COLOR=#0000ff][LEFT]return[/COLOR][/SIZE][/FONT][FONT=F0][SIZE=2];
}[/LEFT]
[/SIZE][/FONT]
چی چی رو خبری نیست بابا من تازه دارم راه میافتممثل اینکه خبری نیست.
پیشنهاد می کنم یه مدت تعطیلش کنیم تا اوضاع تالار و خونه تکونی هم معلوم بشه.
بعد باید یه فکر اساسی بکنیم.
saranet نظر شما چیه؟
منم چهارمی ام البته یه کم وقت میخوام تا برنامه نویسیم بهتر بشه!!!
test case( این دو کلمه این طور معنی شده : قضیه در آزمایش)
منظور سوال رو اگه کسی متوجه شده بگه تا بتونیم بهتر کار کنیم.
[LEFT]2 3 4 5 6 7 8 9 بازه زمانی
1 1 2 2 1 1 1 0 تعداد چراغ روشن
A A B B A A A - کاراکتر چاپ شده[/LEFT]
A 1 5
[LEFT]B 4 8
C 9 10[/LEFT]
1 2 3 4 5 6 7 8 9 10 بازه زمانی
[LEFT]1 1 1 2 1 1 1 0 1 0 تعداد چراغ روشن
A A A B A A A - A - کاراکتر چاپ شده[/LEFT]
سلام دوست عزیز خیلی خوش اومدین به بحث جذاب و جالب ACM
ممنون به خاطر ترجمه عالیتون
فکر کنم بشه "نمونه آزمایشی" ترجمه ش کرد. به مفهوم متن نزدیک تره
ورودي:
2
2
X 2 6
Y 4 9
3
A 1 5
B 4 8
C 9 10
سطر اول عدد 2: يعني خروجي ما دو تا سطر داره (همونtest case)
سطر دوم عدد 2: يعني دو سطر بعدي ورودي، مربوط به يک سطر از خروجي هستن:X 2 6
Y 4 9ميتونيم يه بازه زماني از 2 تا 9 در نظر بگيريم و تو يه جدول تعداد چراغ هاي روشن در هر لحظه رو ثبت کنيمکد:[LEFT]2 3 4 5 6 7 8 9 بازه زمانی 1 1 2 2 1 1 1 0 تعداد چراغ روشن A A B B A A A - کاراکتر چاپ شده[/LEFT]
براي test case دوم داريم:کد:A 1 5 [LEFT]B 4 8 C 9 10[/LEFT] 1 2 3 4 5 6 7 8 9 10 بازه زمانی [LEFT]1 1 1 2 1 1 1 0 1 0 تعداد چراغ روشن A A A B A A A - A - کاراکتر چاپ شده[/LEFT]
[LEFT]X 2 6
Y 4 9
2 3 4 5 6 7 8 9 بازه زمانی
1 1 2 2 1 1 1 0 تعداد چراغ روشن
A A B B A A A - کاراکتر چاپ شده[/LEFT]
کد:[LEFT]X 2 6 Y 4 9 2 3 4 5 6 7 8 9 بازه زمانی 1 1 2 2 1 1 1 0 تعداد چراغ روشن A A B B A A A - کاراکتر چاپ شده[/LEFT]
خوب ببینین متن میگه هر کلیدی که فشار میدیم یه چراغ روشن میشه و وقتی همون کلید رو دوباره فشار میدیم چراغش خاموش میشه
اگه واحد زمان رو مثلا ثانیه در نظر بگیریم، تو هر ثانیه هر چند تا چراغ که روشن باشه، کاراکتر مربوط به اون تعداد چاپ میشه.
برای 1، حرف A، برای 2، حرف B و ...
حالا تو ثانیه اول هیچ چراغی روشن نیست
X 2 6 میگه تو ثانیه دوم و ثانیه ششم حرف X رو فشار داده
پس ثانیه 2 یه چراغ روشن شده و ثانیه 6 خاموش شده
Y 4 9 میگه ثانیه 4 یه چراغ (توجه کنین غیر از چراغ X) روشن شده و ثانیه 9 خاموش شده
حالا جدولی که درست کردیم :
ثانیه 2و3 فقط چراغ مربوط به X روشنه
ثانیه 4 چراغ Y هم روشن میشه، یعنی 2 چراغ
ثانیه 5 هم هر دوتا چراغ هنوز روشن هستن
ثانیه 6 حرف x دوباره فشار داده میشه و چراغش خاموش میشه، پس 1 چراغ روشن میمونه
ثانیه 7و8 هم که هیچ اتفاقی نیفتاده و همون 1 چراغ روشنه
ثانیه 9 حرف Y فشار داده شده و چراغ اونم خاموش میشه، پس هیچ چراغی تو ثانیه 9 روشن نیس
امیدوارم تونسته باشم خوب توضیح بدم
دستت درد نکنه.
حالا میرم ببینم میتونم حلش کنم یا نه.
راستی C Shap هم قبوله؟
خیلی خوشحال شدم دیدم دوباره فعالیتتون رو شروع کردین . براتون آرزوی موفقیت می کنم .
منم سعی می کنم با شما همراه بشم.
http://www.4shared.com/file/26426529/f914e655/ConsoleApplication1.html
class Program
{
static void Main(string[] args)
{
int n;
int[,] array;
char char1;
int min, max;
Console.WriteLine("Please Enter t:");
int t = Int32.Parse(Console.ReadLine());
int f;
for (int i = 0; i < t; i++)
{
Console.WriteLine();
max = 0;
min = 27;
Console.WriteLine("Please Enter n:");
n = Int32.Parse(Console.ReadLine());
Console.WriteLine();
array = new int[n,2];
for (int j = 0; j < n; j++)
{
char1 = Char.Parse(Console.ReadLine());
for (int k = 0; k < 2; k++)
{
array[j, k] = Int32.Parse(Console.ReadLine());
}
Console.WriteLine();
}
for (int j = 0; j < n; j++)
for (int k = 0; k < 2; k++)
{
if (array[j, k] > max)
max = array[j, k];
if (array[j, k] < min)
min = array[j, k];
}
for (int m = min; m <= max; m++)
{
f = 0;
for (int j = 0; j < n; j++)
{
if (m >= array[j, 0] && m < array[j, 1])
f++;
}
Console.Write(Alphabets(f));
}
Console.WriteLine();
}
Console.ReadKey();
}
static string Alphabets(int f)
{
string d = "";
switch (f)
{
case 1:
d = "A";
break;
case 2:
d = "B";
break;
case 3:
d = "C";
break;
case 4:
d = "D";
break;
case 5:
d = "E";
break;
case 6:
d = "F";
break;
case 7:
d = "G";
break;
case 8:
d = "H";
break;
case 9:
d = "I";
break;
case 10:
d = "J";
break;
case 11:
d = "K";
break;
case 12:
d = "L";
break;
case 13:
d = "M";
break;
case 14:
d = "N";
break;
case 15:
d = "O";
break;
case 16:
d = "P";
break;
case 17:
d = "Q";
break;
case 18:
d = "R";
break;
case 19:
d = "S";
break;
case 20:
d = "T";
break;
case 21:
d = "U";
break;
case 22:
d = "V";
break;
case 23:
d = "W";
break;
case 24:
d = "X";
break;
case 25:
d = "Y";
break;
case 26:
d = "Z";
break;
}
return d;
}
}
Thread starter | عنوان | تالار | پاسخ ها | تاریخ |
---|---|---|---|---|
مسابقه برنامه نویسی ACM دانشگاه صنعتی شاهرود در سطح شمال شرق با جوایز ارزنده | مسابقه | 0 | ||
اطلاعات درباره مسابقات ACM | مسابقه | 6 | ||
درخواست سوالات مسابقات ACM | مسابقه | 0 | ||
S | 34rd ACM International Collegiate Programming Contest | مسابقه | 0 |