FUNCTION me_update_requisition.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1) Function Module ME_UPDATE_REQUISITION, Start A
*$*$-Start: (1)---------------------------------------------------------------------------------$*$*
ENHANCEMENT 1 YHSBC_MM_SAVE_FOR_EBAN_FIELDS. "active version

*&start changed by robin 20140412 ECDK917957
*&据IP取得相关登录用户并作修改:
CALL FUNCTION 'YH_BC_MM_SAVE_EBAN_FIELDS'
TABLES
XEBAN_TAB = XEBAN
YEBAN_TAB = YEBAN.
*&END CHANGED BY ROBIN 20140304

ENDENHANCEMENT.
ENHANCEMENT 1 YH_PR_SAVE_ENHANCEMENT. "active version
CALL FUNCTION 'YH_PR_SAVE_EXIST'
TABLES
xeban = XEBAN
yeban = YEBAN
.
*
ENDENHANCEMENT.
*$*$-End: (1)---------------------------------------------------------------------------------$*$*
*"----------------------------------------------------------------------
*"*"Update Function Module:
*"
*"*"Global Interface:
*" IMPORTING
*" VALUE(XPREXT) TYPE MEREQ_T_UPREXT OPTIONAL
*" VALUE(MEREQX) TYPE MEREQ_T_UMEREQX OPTIONAL
*" TABLES
*" XEBAN STRUCTURE UEBAN
*" XEBKN STRUCTURE UEBKN
*" YEBAN STRUCTURE UEBAN
*" YEBKN STRUCTURE UEBKN
*" DRS_ITEMS TYPE MMPUR_DRS_ITEMS_TTY OPTIONAL
*"----------------------------------------------------------------------
*- fuellen Altstruktur Banf -----------------------------------------
CLEAR oeban.
LOOP AT yeban.
MOVE yeban TO oeban.
APPEND oeban.
ENDLOOP.
SORT oeban BY banfn bnfpo.

*------- Check if EhP4 switch is on----------------------------------*
DATA lv_ehp4_sfws_p2pse TYPE xfeld.
DAta ls_eban type eban.
lv_ehp4_sfws_p2pse = ''.
lv_ehp4_sfws_p2pse = cl_ops_switch_check=>mm_sfws_p2pse( ).

REFRESH: db_eban, db_eban_u, db_ebub, db_ebub_d.
REFRESH: tebav.

*------- Positionen Loeschen ------------------------------------------*
LOOP AT oeban.
IF oeban-kz EQ 'D'.
MOVE-CORRESPONDING oeban TO eban.
MOVE eban TO db_eban.
APPEND db_eban.
*------- Umlagerungsindex ---------------------------------------------*
* IF EBAN-PSTYP EQ '7'.
IF eban-reswk NE space AND eban-bsakz NE 'R' AND
eban-matnr NE space AND
eban-ebakz EQ space AND
eban-loekz EQ space AND
eban-menge GT eban-bsmng.
MOVE-CORRESPONDING eban TO ebub.
MOVE ebub TO db_ebub_d.
APPEND db_ebub_d.
ENDIF.
ENDIF.

ENHANCEMENT-POINT EHP603_ME_UPDATE_REQUISITION_1 SPOTS ES_SAPLEBNU_P2P.
*$*$-Start: EHP603_ME_UPDATE_REQUISITION_1------------------------------------------------------$*$*
ENHANCEMENT 1 MM_SFWS_EBNU. "active version
*-------Create change pointer for TREX
PERFORM trex_change_pointer USING oeban-banfn
oeban-kz.
ENDENHANCEMENT.
*$*$-End: EHP603_ME_UPDATE_REQUISITION_1------------------------------------------------------$*$*

IF lv_ehp4_sfws_p2pse EQ 'X'.
* MOVE-CORRESPONDING oeban to ls_eban.
CALL FUNCTION 'ME_TREX_TRIGGER_PR'
EXPORTING
IV_BANFN = oeban-banfn
IV_BNFPO = oeban-bnfpo
IV_EBAN_CHANGEID = oeban-kz
* IT_CHANGED_PR = IT_CHANGED_PR
.

* CALL FUNCTION 'ME_TREX_TRIGGER_PR'
* EXPORTING
* IS_BANFN = oeban-banfn
* IS_BNFPO = oeban-bnfpo
** IS_EBAN = ls_eban
** IS_EBKN = IS_EBKN
** IS_EBAN_TECH = IS_EBAN_TECH
* IV_EBAN_CHANGEID = oeban-kz
** IV_EBKN_CHANGEID = IV_EBKN_CHANGEID
** IV_EBAN_TECH_CHANGEID = IV_EBAN_TECH_CHANGEID
.
ENDIF.
ENDLOOP.

DESCRIBE TABLE db_eban LINES sy-tfill.
IF sy-tfill GT 0.
DELETE eban FROM TABLE db_eban.
IF sy-subrc NE 0.
MESSAGE a809 WITH 'EBAN'.
ENDIF.
REFRESH db_eban.
ENDIF.

REFRESH: db_eban, db_eban_u.
REFRESH: tebav.

* 1. Runde verbuchen der Banfen per Array-Operationen
*------- Banfen verbuchen ---------------------------------------------*
LOOP AT xeban.
MOVE xeban TO eban.
*------- Neue Banf/Banfposition ---------------------------------------*
IF xeban-kz EQ 'I'.
MOVE xeban TO db_eban.
APPEND db_eban.

*------- Umlagerungsindex ---------------------------------------------*
* IF EBAN-PSTYP EQ '7'.
IF eban-reswk NE space AND eban-bsakz NE 'R' AND
eban-matnr NE space AND
eban-ebakz EQ space AND
eban-loekz EQ space AND
eban-menge GT eban-bsmng.
MOVE-CORRESPONDING eban TO ebub.
MOVE ebub TO db_ebub.
APPEND db_ebub.
ENDIF.

ENDIF.
*------- Geaenderte Banf/Banfposition ---------------------------------*
IF xeban-kz EQ 'U'.
* MOVE XEBAN TO DB_EBAN_U.
* APPEND DB_EBAN_U.
MOVE-CORRESPONDING xeban TO tebav.
APPEND tebav.
ENDIF.
ENHANCEMENT-POINT ehp603_me_update_requisition_2 SPOTS es_saplebnu_p2p.
*$*$-Start: EHP603_ME_UPDATE_REQUISITION_2------------------------------------------------------$*$*
ENHANCEMENT 2 MM_SFWS_EBNU. "active version
*-------Create change pointer for TREX
PERFORM trex_change_pointer USING xeban-banfn
xeban-kz.
ENDENHANCEMENT.
*$*$-End: EHP603_ME_UPDATE_REQUISITION_2------------------------------------------------------$*$*

IF lv_ehp4_sfws_p2pse EQ 'X'.
* MOVE-CORRESPONDING Xeban to ls_eban.

CALL FUNCTION 'ME_TREX_TRIGGER_PR'
EXPORTING
IV_BANFN = xeban-banfn
IV_BNFPO = xeban-bnfpo
IV_EBAN_CHANGEID = xeban-kz
* IT_CHANGED_PR = IT_CHANGED_PR
.

* CALL FUNCTION 'ME_TREX_TRIGGER_PR'
* EXPORTING
* IS_BANFN = xeban-banfn
* IS_BNFPO = xeban-bnfpo
** IS_EBAN = ls_eban
** IS_EBKN = IS_EBKN
** IS_EBAN_TECH = IS_EBAN_TECH
* IV_EBAN_CHANGEID = xeban-kz
** IV_EBKN_CHANGEID = IV_EBKN_CHANGEID
** IV_EBAN_TECH_CHANGEID = IV_EBAN_TECH_CHANGEID
* .
ENDIF.
ENDLOOP.
DESCRIBE TABLE db_eban LINES sy-tfill.
IF sy-tfill GT 0.
INSERT eban FROM TABLE db_eban.
IF sy-subrc NE 0.
MESSAGE a807 WITH 'EBAN'.
ENDIF.
REFRESH db_eban.
ENDIF.
*ESCRIBE TABLE DB_EBAN_U LINES SY-TFILL.
DESCRIBE TABLE tebav LINES sy-tfill.
IF sy-tfill GT 0.
* UPDATE EBAN FROM TABLE DB_EBAN_U.
UPDATE ebav FROM TABLE tebav.
IF sy-subrc NE 0.
MESSAGE a808 WITH 'EBAN'.
ENDIF.
* REFRESH DB_EBAN_U.
REFRESH tebav.
ENDIF.
*2. RUNDE --> UMFELDAKTIONEN
*------- Banfen verbuchen ---------------------------------------------*
LOOP AT xeban.
MOVE xeban TO eban.
*------- Neue Banf/Banfposition ---------------------------------------*
IF xeban-kz EQ 'I'.

*------- Index RSDB für Positionen mit ARSNR --------------------------*
IF NOT eban-arsnr IS INITIAL AND
NOT eban-arsps IS INITIAL.
CALL FUNCTION 'RSDB_CREATE_WITH_EBAN'
EXPORTING
banfn = eban-banfn
bnfpo = eban-bnfpo
rsnum = eban-arsnr
rspos = eban-arsps
EXCEPTIONS
parameters_not_specified = 02
record_already_exist = 03.
IF sy-subrc NE 0.
MESSAGE a807 WITH 'RSDB'.
ENDIF.
ENDIF.
ENDIF.
*------- Geaenderte Banf/Banfposition ---------------------------------*
IF xeban-kz EQ 'U'.
*------- Index RSDB für Positionen mit ARSNR fortschreiben ------------*
MOVE-CORRESPONDING eban TO bsnkey.
READ TABLE oeban WITH KEY bsnkey BINARY SEARCH.
IF sy-subrc EQ 0.
IF eban-reswk NE oeban-reswk OR eban-matnr NE oeban-matnr.
*---- Lieferwerk oder Material hat sich geändert ----------------------*
*---- Umlagerungsindex für altes Lieferwerk/altes Material löschen ----*
IF oeban-reswk NE space AND oeban-bsakz NE 'R' AND
oeban-matnr NE space AND
oeban-ebakz EQ space AND
oeban-loekz EQ space AND
oeban-menge GT oeban-bsmng.
MOVE-CORRESPONDING oeban TO ebub.
MOVE ebub TO db_ebub_d.
APPEND db_ebub_d.
ENDIF.
*---- Umlagerungsindex für neues Lieferwerk/neues Material hinzufügen -*
IF eban-reswk NE space AND eban-bsakz NE 'R' AND
eban-matnr NE space AND
eban-ebakz EQ space AND
eban-loekz EQ space AND
eban-menge GT eban-bsmng.
MOVE-CORRESPONDING eban TO ebub.
MOVE ebub TO db_ebub.
APPEND db_ebub.
ENDIF.
ELSE.
* Umlagerungsindex aufbauen/löschen je nach Loekz und Ebakz
IF eban-reswk NE space AND eban-bsakz NE 'R' AND
eban-matnr NE space.
IF oeban-ebakz EQ space AND
oeban-loekz NE 'X' AND
oeban-menge GT oeban-bsmng AND
( eban-ebakz NE space OR eban-loekz EQ 'X' OR
eban-menge LE eban-bsmng ).
*--- löschen
MOVE-CORRESPONDING eban TO db_ebub_d.
APPEND db_ebub_d.
ELSE.
IF ( oeban-ebakz NE space OR oeban-loekz EQ 'X' OR
oeban-menge LE oeban-bsmng ) AND
eban-ebakz EQ space AND eban-loekz NE 'X' AND
eban-menge GT eban-bsmng.
*--- hinzufügen
MOVE-CORRESPONDING eban TO db_ebub.
APPEND db_ebub.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF NOT eban-arsnr IS INITIAL AND
NOT eban-arsps IS INITIAL.
IF eban-loekz EQ space AND
oeban-loekz NE space AND
eban-estkz NE 'F'. "QNL
CALL FUNCTION 'RSDB_CREATE_WITH_EBAN'
EXPORTING
banfn = eban-banfn
bnfpo = eban-bnfpo
rsnum = eban-arsnr
rspos = eban-arsps
EXCEPTIONS
parameters_not_specified = 02
record_already_exist = 03.
IF sy-subrc NE 0.
MESSAGE a807 WITH 'RSDB'.
ENDIF.
ENDIF.
IF eban-loekz NE space AND
oeban-loekz EQ space AND
eban-estkz NE 'F'.
CALL FUNCTION 'RSDB_DELETE_WITH_EBAN'
EXPORTING
banfn = eban-banfn
bnfpo = eban-bnfpo
rsnum = eban-arsnr
rspos = eban-arsps
EXCEPTIONS
parameters_not_specified = 01
record_not_exist = 02.
IF sy-subrc NE 0.
* MESSAGE a809 WITH 'RSDB'. "402007
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.

ENHANCEMENT-POINT ehp603_me_update_requisition_3 SPOTS es_saplebnu_p2p.
*$*$-Start: EHP603_ME_UPDATE_REQUISITION_3------------------------------------------------------$*$*
ENHANCEMENT 3 MM_SFWS_EBNU. "active version
*-------Create change pointer for TREX
PERFORM trex_change_pointer USING xeban-banfn
xeban-kz.
ENDENHANCEMENT.
*$*$-End: EHP603_ME_UPDATE_REQUISITION_3------------------------------------------------------$*$*

IF lv_ehp4_sfws_p2pse EQ 'X'.
* MOVE-CORRESPONDING Xeban to ls_eban.

CALL FUNCTION 'ME_TREX_TRIGGER_PR'
EXPORTING
IV_BANFN = xeban-banfn
IV_BNFPO = xeban-bnfpo
IV_EBAN_CHANGEID = xeban-kz
* IT_CHANGED_PR = IT_CHANGED_PR
.
*
* CALL FUNCTION 'ME_TREX_TRIGGER_PR'
* EXPORTING
* IS_BANFN = xeban-banfn
* IS_BNFPO = xeban-bnfpo
** IS_EBAN = LS_EBAN
** IS_EBKN = IS_EBKN
** IS_EBAN_TECH = IS_EBAN_TECH
* IV_EBAN_CHANGEID = xeban-kz
** IV_EBKN_CHANGEID = IV_EBKN_CHANGEID
** IV_EBAN_TECH_CHANGEID = IV_EBAN_TECH_CHANGEID
* .
ENDIF.
ENDLOOP.

* Fortschreiben neuer Umlagerungsindizes
PERFORM ebub_fortschreiben TABLES db_ebub db_ebub_d.

REFRESH: db_ebkn.

*------- Kontierungen Loeschen ----------------------------------------*
LOOP AT yebkn.
MOVE yebkn TO oebkn.
IF oebkn-kz EQ 'D'.
* MOVE OEBKN TO EBKN.
MOVE-CORRESPONDING oebkn TO db_ebkn.
APPEND db_ebkn.
ENDIF.
ENDLOOP.
DESCRIBE TABLE db_ebkn LINES sy-tfill.
IF sy-tfill GT 0.
DELETE ebkn FROM TABLE db_ebkn.
IF sy-subrc NE 0.
MESSAGE a809 WITH 'EBKN'.
ENDIF.
REFRESH db_ebkn.
ENDIF.

REFRESH: db_ebkn, db_ebkn_u.

*------- Kontierungspositionen ----------------------------------------*
LOOP AT xebkn.
MOVE-CORRESPONDING xebkn TO ebkn.
*------ Kontierungsposition hinzufuegen -------------------------------*
IF xebkn-kz EQ 'I'.
MOVE-CORRESPONDING xebkn TO db_ebkn.
APPEND db_ebkn.
ENDIF.
*------ Kontierungsposition aendern -----------------------------------*
IF xebkn-kz EQ 'U'.
MOVE-CORRESPONDING xebkn TO db_ebkn_u.
APPEND db_ebkn_u.
ENDIF.

ENDLOOP.

DESCRIBE TABLE db_ebkn LINES sy-tfill.
IF sy-tfill GT 0.
INSERT ebkn FROM TABLE db_ebkn.
IF sy-subrc NE 0.
MESSAGE a807 WITH 'EBKN'.
ENDIF.
REFRESH db_ebkn.
ENDIF.
DESCRIBE TABLE db_ebkn_u LINES sy-tfill.
IF sy-tfill GT 0.
UPDATE ebkn FROM TABLE db_ebkn_u.
IF sy-subrc NE 0.
MESSAGE a808 WITH 'EBKN'.
ENDIF.
REFRESH db_ebkn_u.
ENDIF.

*- Update Quota
CALL FUNCTION 'ME_UPDATE_QUOTA_FROM_REQ' "361414
TABLES
xeban = xeban
yeban = yeban.

* MM-PUR/APO #124738
* Interface BTE 01000710
IF CL_OPS_SWITCH_CHECK=>LO_MM_SD_SFWS_DM_SC( )
EQ CL_OPS_SWITCH_CHECK=>SWITCH_ACTIVE_TRUE AND LINES( DRS_ITEMS ) GT 0. "Perform the call only when DRS_ITEMS are filled

CALL FUNCTION 'OUTBOUND_CALL_01000710_E' "DRS items should be send over to APO
TABLES
T_XEBAN = xeban
T_XEBKN = xebkn
T_YEBAN = yeban
T_YEBKN = yebkn
IT_DRS_ITEMS = DRS_ITEMS.
ELSE.
CALL FUNCTION 'OUTBOUND_CALL_01000710_E'
TABLES
t_xeban = xeban
t_xebkn = xebkn
t_yeban = yeban
t_yebkn = yebkn
EXCEPTIONS
OTHERS = 1.
ENDIF.
*
*------- Update additional data PREXT NCF KH ----------------------*

DATA: lt_prext_db TYPE mereq_t_prext,
lt_prext_db_u TYPE mereq_t_prext,
ls_prext LIKE LINE OF lt_prext_db,
ls_xprext LIKE LINE OF xprext.

LOOP AT xprext INTO ls_xprext.
CLEAR ls_prext.
MOVE-CORRESPONDING ls_xprext TO ls_prext.
CASE ls_xprext-kz.
WHEN 'I'.
APPEND ls_prext TO lt_prext_db.
WHEN 'U'.
APPEND ls_prext TO lt_prext_db_u.
ENDCASE.
ENDLOOP.
DESCRIBE TABLE lt_prext_db LINES sy-tfill.
IF sy-tfill GT 0.
INSERT prext FROM TABLE lt_prext_db.
IF sy-subrc NE 0.
MESSAGE a807 WITH 'PREXT'.
ENDIF.
ENDIF.
DESCRIBE TABLE lt_prext_db_u LINES sy-tfill.
IF sy-tfill GT 0.
UPDATE prext FROM TABLE lt_prext_db_u.
IF sy-subrc NE 0.
MESSAGE a808 WITH 'PREXT'.
ENDIF.
ENDIF.

*-------update x-fields in case of holding a document-----------------*

* mereqx can only contain entries in case of holding a document
CHECK NOT mereqx IS INITIAL.

DATA: lt_mereqx_db TYPE mereq_t_mereqx,
lt_mereqx_db_u TYPE mereq_t_mereqx,
lt_mereqx_db_d TYPE mereq_t_mereqx, " Note 1490525
l_tabname TYPE tabname, " Note 1490525
ls_mereqx LIKE LINE OF lt_mereqx_db,
ls_umereqx LIKE LINE OF mereqx.

LOOP AT mereqx INTO ls_umereqx.
CLEAR ls_mereqx.
MOVE-CORRESPONDING ls_umereqx TO ls_mereqx.
CASE ls_umereqx-kz.
WHEN 'I'.
APPEND ls_mereqx TO lt_mereqx_db.
WHEN 'U'.
APPEND ls_mereqx TO lt_mereqx_db_u.
WHEN 'D'. " Note 1490525
APPEND ls_mereqx to lt_mereqx_db_d. " Note 1490525
ENDCASE.
ENDLOOP.
DESCRIBE TABLE lt_mereqx_db LINES sy-tfill.
IF sy-tfill GT 0.
INSERT mereqx FROM TABLE lt_mereqx_db.
IF sy-subrc NE 0.
MESSAGE a807 WITH 'MEREQX'.
ENDIF.
ENDIF.
DESCRIBE TABLE lt_mereqx_db_u LINES sy-tfill.
IF sy-tfill GT 0.
UPDATE mereqx FROM TABLE lt_mereqx_db_u.
IF sy-subrc NE 0.
MESSAGE a808 WITH 'MEREQX'.
ENDIF.
ENDIF.

L_TABNAME = 'MEREQX'. " Note 1490525
DESCRIBE TABLE lt_mereqx_db_d LINES sy-tfill. " Note 1490525
IF sy-tfill GT 0. " Note 1490525
DELETE (l_tabname) FROM table lt_mereqx_db_d. " Note 1490525
IF sy-subrc NE 0. " Note 1490525
MESSAGE a809 WITH 'MEREQX'. " Note 1490525
ENDIF. " Note 1490525
ENDIF. " Note 1490525

ENDFUNCTION.

PR 修改保存的增强 ME_UPDATE_REQUISITION的更多相关文章

  1. openerp学习笔记 计算字段、关联字段(7.0中非计算字段、关联字段只读时无法修改保存的问题暂未解决)

    计算字段.关联字段,对象修改时自动变更保存(当 store=True 时),当 store=False 时,默认不支持过滤和分组7.0中非计算字段.关联字段只读时无法修改保存的问题暂未解决 示例代码: ...

  2. ubuntu13.04如何修改保存屏幕亮度

    ubuntu13.04如何修改保存屏幕亮度    入手ubuntu两月有余,最初只是想装个ubuntu学习下linux,然后搞了个win7和ubuntu的双系统,最后干脆将win7干掉了,直接让ubu ...

  3. 【MM系列】SAP 采购订单收货后不能修改价格的增强

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 采购订单收货后不能修改价格的 ...

  4. 2018-8-10-win10-uwp-如何创建修改保存位图

    title author date CreateTime categories win10 uwp 如何创建修改保存位图 lindexi 2018-08-10 19:16:50 +0800 2018- ...

  5. opencv 加载 修改 保存 图像

    #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; /* 1 加载图像 cv::imre ...

  6. ubuntu 修改保存报错E37:No write since last change(add ! to override)的解决方法

    报错信息如下: E37: No write since last change (add ! to override) 解决办法是: 在修改完后,将命令 :q 改成 :wq 即可.

  7. PR修改例子

    DATA: lt_items_old    LIKE TABLE OF bapiebanv   WITH HEADER LINE.   DATA: lt_items_new    LIKE TABLE ...

  8. 从SuperSocket的App.config中读取配置,并修改保存,再重启服务

    string XmlPath = System.Windows.Forms.Application.ExecutablePath + ".config"; XmlDocument ...

  9. SAP 常用增强记录文档

    转自:http://blog.csdn.net/budaha 20170215需要一个PR 修改保存时候的增强,目的是同步PR的处理状态 EBAN-STATU 到一个自建表ZTPRTOPO,记得有个P ...

随机推荐

  1. 【笔记】ubuntu如何切换到root用户&&linux如何关闭各种保护

    默认安装完成之后并不知道root用户的密码,那么如何应用root权限呢? (1)sudo 命令   这样输入当前管理员用户密码就可以得到超级用户的权限.但默认的情况下5分钟root权限就失效了. () ...

  2. 利用OpenXml读取、导出Excel

    OpenXml是通过 XML 文档提供行集视图.由于OPENXML 是行集提供程序,因此可在会出现行集提供程序(如表.视图或 OPENROWSET 函数)的 Transact-SQL 语句中使用 OP ...

  3. ubuntu安装远程桌面连接工具

    1. 安装xrdp sudo apt-get -y install xrdp   2.安装vnc4server sudo apt-get install vnc4server   3.安装xubunt ...

  4. 『NYIST』第九届河南省ACM竞赛队伍选拔赛[正式赛二]-最小内积(第八届北京师范大学程序设计竞赛决赛)

    H. 最小内积                                                                   Time Limit: 1000ms Memory ...

  5. Linux核心参数Shmmax,shmall,shmni

    Linux 下核心参数调整 kernel.shmmax shmmax是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值,shmmax设置应足够大,能在一个共享内存段下容纳下整个的SGA,设置 ...

  6. iRule Event Order - HTTPv12

  7. [luoguP2831] 愤怒的小鸟(状压DP)

    传送门 感觉这题不是很难,但是很恶心. 说一下几点. 1.预处理出来每两个点所构成的抛物线能消除的猪的集合. 2.如果两个点横坐标相同,则不能构成抛物线 3.a >= 0 continue 4. ...

  8. 【贪心】codeforces B. Heidi and Library (medium)

    http://codeforces.com/contest/802/problem/B [题意] 有一个图书馆,刚开始没有书,最多可容纳k本书:有n天,每天会有人借一本书,当天归还:如果图书馆有这个本 ...

  9. hdu 1563简单异或Find your present!

    #include<stdio.h> int  main(){  int n,m,s;  while(scanf("%d",&n),n) {   s=0;   w ...

  10. bit manipulation

    WIKI Bit manipulation is the act of algorithmically manipulating bits or other pieces of data shorte ...