im4u

ID/PWã±â ȸ¿ø°¡ÀÔ
  • im4u¼Ò°³
  • Á¤º¸¿µÀç±³À°°úÁ¤
  • ´ëȸ/ÁøÇÐ ¾È³»
  • ÀÚ·á½Ç
  • ¼¾ÅÍ°¡¸Í¹æ¹ý
  • ÈÞ°Ô½Ç
  • ¸ðÀÇ°í»ç
  • Q&A
  • °¡¸ÍÁ¡ÇÖ¶óÀÎ

 

 

   ȸ¿ø°¡ÀÔ
   ¾ÆÀ̵ð/Æнº¿öµåã±â

im4u ÀÏÁ¤ »çÀÌÆ®¸Ê


 
±Û¾´ÀÌ: im4u Á¦¸ñ: [ÀÀ´ä]¿Ã¸²ÇÇ¾Æµå ¹®Á¦¿¡ ´ëÇØ Áú¹® Á¶È¸¼ö: 1922
À̸ÞÀÏ: im4u@im4u.co.kr


½ÇÁ¦ IOI, KOI °æ½ÃºÎºÐ ´ëȸÀÇ ¹®Á¦¿¡¼­
ÆÄÀÏ ÀÔÃâ·ÂÀ¸·Î ¹®Á¦¸¦ ÇØ°áÇÒ °ÍÀ» ¿ä±¸ÇÕ´Ï´Ù.

Visual C++ ¿¡¼­µµ ÆÄÀÏ ÀÔÃâ·Â¿¡ °üÇÑ ³»¿ëÀ»
(Áú¹®ÇϽŠÆÄÀÏÆ÷ÀÎÆ®¸¦ ÀÌ¿ëÇÑ ÆÄÀÏÀÔÃâ·Â ¹æ¹ýµî)
²À ¾Ë¾ÆµÎ¼Å¾ß ÇÕ´Ï´Ù.

ÆÄÀÏÀÔÃâ·Â¿¡ ´ëÇؼ­ Ãß°¡·Î ¼³¸íÀ» µå¸®¸é ¾Æ·¡¿Í
°°½À´Ï´Ù.

ÆÄÀÏÀ» ÀÔÃâ·ÂÇÏ´Â °ÍÀº ¸î°¡Áö ÇÔ¼ö¸¸ ÀÍÈ÷¸é
ºñ±³Àû ½±°Ô ÇÒ¼ö ÀÖ½À´Ï´Ù.
ÇÔ¼ö¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ·¹ÆÛ·±½º¸¦ Âü°íÇϽñ⠹ٶó¸ç,
´ÙÀ½Àº ÀϹÝÀûÀÎ ÇüÅ¿¡ ´ëÇÑ ¼³¸íÀÔ´Ï´Ù.
---------------------------------------------------
FILE* fpHandle; // ÆÄÀÏ ÇÚµéÀ» ¼±¾ðÇÕ´Ï´Ù.

fpHandle = fopen("À̸§", "w" ) // ÆÄÀÏÀ» ¿­¾î¼­ ÇÚµéÀ» »ý¼ºÇÕ´Ï´Ù.
:
ÆÄÀÏ¿¡ ³»¿ëÀ» Ãâ·ÂÇÕ´Ï´Ù.
:
fclose(fpHandle); // ¿­¾ú´ø ÆÄÀÏÀ» ´Ý½À´Ï´Ù.

ÀÇ ÇüÅ·ΠÁ¶ÀÛÀ» ÇÕ´Ï´Ù. ±×¸®°í ÆÄÀÏ¿¡ ÀÔÃâ·ÂÀ» ÇÏ´Â ÇÔ¼öµéÀº ´ÙÀ½°ú °°Àº °ÍµéÀÌ ÀÖ½À´Ï´Ù.
fprintf - ÆÄÀÏ¿¡ printfÀÇ ÇüÅ·ΠÃâ·ÂÇÕ´Ï´Ù.
fscanf - ÀÌ°ÍÀº scanfÀÇ ÇüÅÂ¿Í °°½À´Ï´Ù.
fwrite - ¹öÆÛÀÇ ³»¿ëÀ» ÆÄÀÏ¿¡ ±â·ÏÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù.
fread - ÆÄÀÏÀÇ ³»¿ëÀ» ¹öÆÛ¿¡ Àоî¿À´Â ÇÔ¼öÀÔ´Ï´Ù.
:
----------------------------------------------------
ÀÌ°Íµé ¿Ü¿¡µµ ¸¹Àº ÇÔ¼öµéÀÌ ÀÖÁö¸¸ À§ÀÇ 4°³Á¤µµ¸é
±âº»ÀûÀÎ ¹®Á¦µéÀ» Ǫ´Âµ¥ Å« ÁöÀåÀÌ ¾øÀ¸¸®¶ó »ý°¢µË´Ï´Ù.

¾Æ·¡´Â À§¿¡¼­ ¼³¸íÇÑ ³»¿ëµéÀ» ÀÌ¿ëÇÏ¿©, ½ÇÁ¦ IOI2002¿¡¼­
Á¦°øÇÏ´Â ¿Ã¸²ÇÇ¾Æµå ¿¹»ó¹®Á¦¿¡ ´ëÇÑ ÇØ´ä ¼Ò½ºÄڵ带
Á¦½ÃÇÏ¿´À¸´Ï Âü°íÇϽñ⠹ٶø´Ï´Ù.

#include <stdio.h>

#define INPUT_FILE "input.txt"
#define OUTPUT_FILE "output.txt"
#define MAX_N 1000
#define MAX_WEIGHT 10000
#define MAX_VALUE 50000 * MAX_WEIGHT

int T, E, F, N;
int P[MAX_N], W[MAX_N];
int S[MAX_WEIGHT+1];
FILE *inf, *outf;

void input_data()
{
fscanf(inf, "%d %d\n", &E, &F);
fscanf(inf, "%d\n", &N);

for (int i=0; i<N; i++)
fscanf(inf, "%d %d\n", &P[i], &W[i]);
}

void initialize_S()
{

S[0] = 0;

for (int i=1; i<=F-E; i++)
S[i] = MAX_VALUE;
}

void solve()
{
int i, j;

initialize_S();

for (i=0; i<N; i++)
for (j=0; j<=F-E-W[i]; j++)
if (S[j]+P[i] < S[j+W[i]]) S[j+W[i]] = S[j]+P[i];
}

void output_result()
{
if (S[F-E] == MAX_VALUE) fprintf(outf, "-1\n");
else fprintf(outf, "%d\n", S[F-E]);
}

void main()
{
inf = fopen(INPUT_FILE, "r");
outf = fopen(OUTPUT_FILE, "w");

fscanf(inf, "%d\n", &T);

for(int i=0; i<T; i++) {
input_data();
solve();
output_result();
}

fclose(inf);
fclose(outf);
}

* Âü°í·Î ¿ÃÇØ Çѱ¹Á¤º¸¿Ã¸²ÇÇ¾Æµå °æ½ÃºÎºÐ¿¡¼­ »ç¿ëÇØ¾ß ÇÏ´Â ¾ð¾î´Â ¾Æ·¡¿Í °°½À´Ï´Ù.
»ç¿ë¾ð¾î : Visual Basic, Visual C++, Delphi
¡Ø ±ÇÀå¹öÁ¯ : Visual Basic 6.0, Visual C++ 6.0, Delphi5

°ü·Ã±Û : 1 °Ç ±Û¾´½Ã°£ : 2002-04-29 17:43:43
 
Á¦ ¸ñ Á¶È¸ ³¯Â¥ ±Û¾´ÀÌ
       ¿Ã¸²ÇÇ¾Æµå ¹®Á¦¿¡ ´ëÇØ Áú¹® 2986 04-26 19:22 ÀÌÁ¤¿õ
    [ÀÀ´ä]¿Ã¸²ÇÇ¾Æµå ¹®Á¦¿¡ ´ëÇØ Áú¹® 1922 04-29 17:43 im4u
Àú±â ´ëÀü... ¸ñ·Ïº¸±â »èÁ¦ ¼öÁ¤ ´äÀå ±Û¾²±â Å伺 ÄÄÅÍÇпø¿©..











Copyright(c) 2001 im4u Inc. All rights reserved.        ÀÌ¿ë¾à°ü | °³ÀÎÁ¤º¸Ãë±Þ¹æħ
For question and comments sent e-mail to webmaster Tel : (031)703-6711 Fax : (02)319-4083